Android通过字符串数组构建ListView

  次阅读 作者:智能小宝 来源:互联网 2016-01-14 09:48 我要评论(0)

参照代码

APIDemo工程,com.example.android.apis.view这个包下List1.java。

适合场景

显示单纯的文字数据,并且一行就显示一条。

代码深入分析

具体代码

public class ListViewByArray extends ListActivity{

@Override

public void onCreate(Bundle savedInstanceState){

super.onCreate(savedInstanceState);

// Use an existing ListAdapter that will map an array

// of strings to TextViews

setListAdapter(new ArrayAdapter<STRING>(this, android.R.layout.simple_list_item_1,mStrings));

getListView().setTextFilterEnabled(true);

}

private String[] mStrings = {

"第一个","第二个","第三个","第四个","第五个","第六个", "第七个","第八个","第九个","第十个","第十一个","第十二个", "第十三个","第十四个","第十五个","第十六个","第十七个","第十八个", "第十九个","第二十个","第二十一个","第二十二个","第二十三个","第二十四个", "第二十五个","第二十六个","第二十七个","第二十八个","第二十九个","第三十个", "第三十一个","第三十二个","第三十三个"

};

}

步骤:

1.继承ListActivity类

2.通过String[]初始化一个Android字符串数组变量

3.通过字符串数组,new出ArrayAdapter<String>

4.在setListAdapter,参数为new出的ArrayAdapter<String>

深入分析:

一、setListAdapter方法(在ListActivity里面)源码为:

public void setListAdapter(ListAdapter adapter){

synchronized (this){

ensureList();

mAdapter = adapter;

mList.setAdapter(adapter);

}

}

这个方法使用了synchronized关键字,通过百度搜索到相关的说明如下:

1.当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待当前线程执行完这个代码块一行才能执行该代码块。

2.当一个线程访问object的一个synchronized(this)同步代码块时,其他线程对object中所有其他synchronized(this)同步代码块的访问将被阻塞

3.然而,当一个线程访问object的一个synchronized(this)同步代码块时,另一个线程仍然可以访问该object中的除synchronized(this)同步代码块以外的部分。

4.第三个例子同样适用其它同步代码块。也就是说,当一个线程访问object的一个synchronized(this)同步代码块时,它就获得了这个object的对象锁。结果,其他线程对该object对象所有同步代码部分的访问都被暂停阻塞。

5.以上规则对其他对象锁同样适用

自己的一些分析,

1:setListAdapter方法的参数类型为ListAdapter,但是在我们的代码里,方法传递过去的变量类型为 ArrayAdapter,ArrayAdapter(类)继承了BaseAdapter(抽象类),BaseAdapter(抽象类)实现了ListAdapter(接口)和SpinnerAdapter(接口),也就是说这个方法的参数,只要是继承了BaseAdapter的类都可以传递。这样的设计,能增强功能的可扩展性。

本站文章信息来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 英国研发“杀生”机器人 通过生命体获取能量

    英国研发“杀生”机器人 通过生命体获取能量

  • 无人驾驶汽车如何改变城市生活?听听他们怎么说

    无人驾驶汽车如何改变城市生活?听听他们怎么说

  • 韩春雨称已能重复实验结果 近期将有消息公布

    韩春雨称已能重复实验结果 近期将有消息公布

  • 未来两年人工智能要怎么走?看这篇就够了

    未来两年人工智能要怎么走?看这篇就够了

网友点评网友点评
阅读推荐阅读推荐

据国外媒体报道,在过去两年内,聊天机器人(chatbot)、人工智能以及机器学习的研发和采用取得了巨大进展。许多初创公司正利用人工智能和...

霍金 视觉中国 图 英国著名物理学家霍金(Stephen Hawking)再次就人工智能(AI)发声,他认为:对于人类来说,强大AI的出现可能是最美妙的...

文|郑娟娟 今年,人工智能(AI) 60岁了。在AI60岁的时候,笔者想要介绍一下AI100,一个刚刚2岁的研究项目,但它的预设寿命是100年,甚至更长...

AlphaGo与李世石的人机大战,为大众迅速普及了人工智能的概念。 但对谷歌而言,除了下围棋,现在的人工智能进展到哪一步了?未来,人工智能...