android开发中适配器Adapter有:
ArrayAdapter
BaseAdapater
CursorAdapter
HeaderViewListAdapter,
ResourceCursorAdapter
SimpleAdapter
SimpleCursorAdapter
WrapperListAdapter
最常用的有ArrayAdapter,BaseAdapter,SimpleAdapter,而listView控件就需要用到Adapter
一.简单的listView
如果在List列表中没有过于复杂的东西,就直接new ArrayAdapter()来绘制列表,无需继承
ArrayAdapter,重写它的方法。如果list比较复杂的话,就要自定义布局来实现List列表。
如果是在xml文件中创建了listview
可以用到的属性:
android:divider分割线的颜色
android:dividerHeight分割线的高度
android:entries="@array/week"列表内容,在values下新建arrays.xml文件
android:headerDividersEnabled="false"
android:footerDividersEnabled="false"//首尾割线是否可见
arrays.xml文件的内容如下:
1
2
3
4
5
6
7
8
9
<string-array name="week">
<item>Monday</item>
<item>Tuesday</item>
<item>Wednesday</item>
<item>Thursday</item>
<item>Friday</item>
<item>Saturday</item>
<item>Sunday</item>
</string-array>
也可以用纯代码编写:
ListView listview = new ListView(this);
private String[] mlistStr = {"姓名:雨松MOMO","性别:男","年龄:25","居住地:北京","邮
箱:xuanyusong@gmail.com"};
ArrayAdapter adapter = new ArrayAdapter
(this,android.R.layout.simple_list_item_1, mlistStr);
listview.setAdapter(adapter);
listview.setOnItemClickListener(new OnItemClickListener() {
1
2
@Override
public void onItemClick(AdapterView<?> arg0, View arg1, int
arg2,
long arg3) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, mlistStr[arg2],
Toast.LENGTH_SHORT).show();
}
1
2
});
setContentView(listview);//一定要记得加载
2.带有标题的listView
使用simpleAdapter必须要用Map item来保存列表中的每一项来显示title和
text,new simpleAdapter将Map中的数据写入,程序就会帮助绘制列表。
代码如下:
private String[] mListTitle = { "姓名", "性别", "年龄", "居住地","邮箱"};
private String[] mListStr = { "雨松MOMO", "男", "25", "北京",
"xuanyusong@gmail.com" };
ListView listview = new ListView(this);
ArrayList> mData = new ArrayList>();
for(int i = 0; i < mListStr.length; ++i){
Map item = new HashMap();
item.put("title", mListTitle[i]);
item.put("text", mListStr[i]);
mData.add(item);
}
SimpleAdapter adapter = new SimpleAdapter(this, mData,
android.R.layout.simple_list_item_2,
new String[]{"title", "text"}, new int[]{android.R.id.text1, android.R.id.text2});
listview.setAdapter(adapter);
setContentView(listview);
3.带图片的Listview
使用simpleAdapter来实现带图片的listView,因为系统的布局已经不能满足我们的要求了,所以
要自定义布局,同样用map item 来保存列表当中的每一项内容,如图片,标题,
文本内容等。