ListView+AdapterView

在设计ListView的时候,因为采用了ListView的单击与List中Button的混合事件监听方案,所以不得不自己重写一个AdapterView来重载Button的监听。

 

自定义ListView的Adapter继承自BaseAdapter,

其中有3个方法需要特别注意

1、getView

在这个方法中,完成自定义ListItem的绘制工作,还可以修改各种布局参数,当然Button的监听也需要在这里实现

 

2、getItem

一开始,默认把这个函数returnnull,结果在写ListView单击监听的时候,总是提示parent.getItemAtPosition(position)是空的,后来总算被我发现原来是因为自己没有重写Adapter的getItem方法,

return data.get(arg0)//data是传进Adapter的List<HashMap<String,String>>

 

 

3、getCount

这个函数返回的内容其实和界面上ListView显示的ListItem个数有关系

return data.size(); 就可以了


转:http://blog.sina.com.cn/s/blog_575b0ca50100nu9a.html



使用AdapterView来绑定数据

AdapterView是一个ViewGroup子类, 它的子View是由一个Adapter决定的, 而该Adapter绑定某种类型的数据. AdapterView在你希望显示储存的数据(相对于资源字符串或者图片)时比较有用.

Gallery, ListView, 和 Spinner是AdapterView子类的例子, 你可以使用它们绑定特定类型的数据并按照一定方式来显示它们.

AdapterView对象有两个主要任务:

    * 在布局中显示数据
    * 处理用户的选择

Filling the Layout with Data 为布局填充数据

将数据插入布局一般是通过将AdapterView类绑定到一个Adapter完成的. Adapter从一个外部资源获取数据(可能是代码直接提供,也可能是从设备上的一个数据库查到的数据组成的一个列表).

 

public void onItemClick(AdapterView<?> arg0, View view, int position,long arg3)方法参数说明:
举个例子你会理解的更快:X, Y两个listview,X里有1,2,3,4这4个item,Y里有a,b,c,d这4个item。
如果你点了b这个item。如下:


public  void onItemClick (AdapterView<?> parent,    // parent相当于listview  Y适配器的一个指针,可以通过它来获得Y里装着的一切东西,再通俗点就是说告诉你,你点的是Y,不是X 
 View view,     // view是你点b item的view的句柄,就是你可以用这个view,来获得b里的控件的id后操作控件
 int position,    // position是b在Y适配器里的位置(生成listview时,适配器一个一个的做item,然后把他们按顺序排好队,在放到listview里,意思就是这个b是第position号做好的)
 long id     // id是b在listview Y里的第几行的位置(很明显是第2行),大部分时候position和id的值是一样的,如果需要的话,你可以自己加个log把position和id都弄出来在logcat里瞅瞅,看了之后心里才踏实
)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值