当前位置: 代码迷 >> Android >> Android之ListView<三>ArrayAdapter,SimpleAdapter
  详细解决方案

Android之ListView<三>ArrayAdapter,SimpleAdapter

热度:63   发布时间:2016-05-01 10:06:35.0
Android之ListView<3>ArrayAdapter,SimpleAdapter

??????? 前面的两篇博文讲的ListView的实现,首先要拿到布局文件中的ListView,然后为其添加适配器,写一个内部类继承BaseAdapter,然后重写里面的getCount和getView方法,其实在android内部,google工程师已经写好了某些类已继承BaseAdapter,这样我们就可以直接new出ArrayAdapter和SimpleAdapter,选取不同的构造函数达到我们的要求。

?

ArrayAdapter的构造函数如下,其它的构造函数内部实现原理也都一样:

public ArrayAdapter(Context context, int resource, int textViewResourceId, T[] objects)

context:上下文

?

resource:布局列表项的layout文件

textViewResource:布局文件中要修改的TextView的id

?objects:填充TextView的对象,一般情况下是String数组

public class MainActivity extends Activity {	public static String[] data = {		"textView1", "textView2", "textView3",		"textView4", "textView5", "textView6",		"textView7", "textView8", "textView9"	};	    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        ListView listView = (ListView)findViewById(R.id.listView);                listView.setAdapter(new ArrayAdapter<String>(        		MainActivity.this,        		R.layout.show,        		R.id.textView,        		data));    }}

?

?

?

?

??????? 由上构造函数可以看出ArrayAdapter的实现功能是比较单一的,它只能够修改布局文件中的TextView的某一个,对比较简单的布局用ArrayAdapter还是可以的,ArrayAdapter就像ListView<1>中在getView方法中直接new一个TextView对象,然后对其进行修饰是一样的,而在ListView<2>中,我们已经可以自己指定ListView显示的条目的结构与内容,google工程师同样用了一个简单的形式去实现这种功能,那就是SimpleAdapter。

?

SimpleAdapter的构造函数:

public SimpleAdapter(Context context, List<? extends Map<String, ?>> data,            int resource, String[] from, int[] to)

?????????SimpleAdapter的构造韩函数只此一个

?

context:上下文

data:一个List集合,集合中的元素是Map对象

resource:布局文件

from、to:Map中的键和布局文件中的组建id一一对应

??????? SimpleAdapter可以实现动态修改布局文件显示的内容:



?

?

?

  相关解决方案