您的位置:首页 > 移动开发 > Android开发

Android之ListView详解ArrayAdapter

2013-08-20 09:43 337 查看
        前面的两篇博文讲的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可以实现动态修改布局文件显示的内容:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: