ListVew与Adapter

首先我们先介绍一下Adapter,Adapter对象在Adapter控件和数据源扮演了一个桥梁的角色,它提供了数据源入口,并把数据源拿到的数据逐个添加到Adapter控件中。下面介绍一下Adapter类:

1.ArrayAdapter:简单的Adapter,适用于列表中的只含有文本信息的情况,是填充文本列表最简单的方式。

2.SimpleAdapter:比ArrayAdapter复杂,适用于每一个列表中含有不同子控件,像图片·按钮一类的。

3.SimpleCursorAdapter:专门用来把一个cursor(游标)中的数据映射到列表中,Cursor中的每一条数据映射为列表中的一项。Cursor常在数据库查询中,会把查询到的若干条记录放在一个Cursor中。

4.自定义的Adapter:完全自定义的数据适配方式,灵活性比较强,但使用起来比较复杂。

当然还要说下ListView,ListView是最常用的AdapterView。Android中使用Adapter对象给ListView填充数据,也给其它的像Spinner.gallery.GridView填充数据。

最后讲解一下ArrayAdapter

public class ArrayAdapterActivity extends Activity {
private List<String> dataList;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.array_adapter);
ListView list = (ListView) findViewById(R.id.list);
dataList = new ArrayList<String>();
for (int i = 0; i < 50; i++) {
dataList.add("ListView测试文本,第" + i + "项");
}
final ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
R.layout.array_adapter_item, dataList);
// 将arrayAdapter填充到listView中去
list.setAdapter(adapter);
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {


@Override
public void onItemClick(AdapterView<?> parent, View view,
int position, long id) {
// 使用Toast提示用户选择的项 由于position从0开始计数,而界面从1开始计数故对其加1
Toast.makeText(getApplicationContext(),
"第" + (position + 1) + "项被选中", Toast.LENGTH_LONG)
.show();
}
});
list.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {


@Override
public boolean onItemLongClick(AdapterView<?> parent, View view,
int position, long id) {
// 用户长按删除该项
dataList.remove(position);
// 通知Adapter的观察者数据源改变了,界面内容也改变了
adapter.notifyDataSetChanged();
return true;
}
});
}


}

布局文件有两个希望能帮助一些和我一样刚学的碰面还有

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值