如果在一个list的item当中添加一个button,需要注意以下几点:
1.要在xml文件当中给button设置两个属性
android:focusable="false"
android:clickable="true"
如果不对button设置这两个属性,那么button就会抢夺该item的焦点,你的item就点不动了。如果我们想点击item是点击item效果,点击button是点击button效果,那么在button的属性中加上这两条就ok。
我用的是simpleadapter。需要先对是不是button先进行判断,代码如下:
listadapter.setViewBinder(new ViewBinder(){
@Override
public boolean setViewValue(View view, Object data , String textRepresentation) {
// TODO Auto-generated method stub
if(view instanceof Button)
{
Button button=(Button)view;
return true;
}
return false;
}
});
然后就是给button设置响应时间了,首先我们要继承adapter的getview方法。
代码如下:
listadapter=new SimpleAdapter(this,newlist ,R.layout.user,new String[]{"title","group","photo","username"},new int []{R.id.title,R.id.group,R.id.photo,R.id.username}){
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
if(convertView==null){
convertView=View.inflate(HTTPRequestActivity.this, R.layout.user, null);
}
final Button button=(Button)convertView.findViewById(R.id.group);
button.setOnClickListener(new OnClickListener(){
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
String groupname=(String)button.getText();
}
});
return super.getView(position, convertView, parent);
}
};
在里面就可以添加消息响应了,注意:这个button的消息响应不能定义在oncreate()函数当中,是因为button是定义在item的布局文件当中的,所以所有item中的button共用一个button,其id相同,如果定义在oncreate中,就相当于给每一个item的button都定义。这是不可能的,根本无法获取其button对象,所以会报空指针错。只有在getview中得到button对象。
分享到:
相关推荐
《List控件使用---SimpleAdapter使用详解(一)》博文对应源码,该博文讲解了怎样使用simpleAdapter及派生自BaseAdater的ListView的使用方法,博客地址:...
使用SimpleAdapter创建ListView
NULL 博文链接:https://aygxylxk.iteye.com/blog/1250203
SimpleAdapter BaseAdapter 基本使用
使用SimpleAdapter和自定义Adapter分别实现了ListView的填充,自定义的还添加了一个删除的事件。
《 List控件使用---SimpleAdapter使用详解(二)》:实现从本地JSON文件生成listView界面;对应博文地址:http://blog.csdn.net/harvic880925/article/details/17288687
ArrayAdapter和SimpleAdapter是适配器的两种。ListView控件是最常用的控件之一,ListView的经常使用ArrayAdapter和SimpleAdapter来加载数据源。...该工程对ArrayAdapter和SimpleAdapter的使用方法做了详细的一个例子。
ListView使用simpleAdapter填充实现,数据结构是HashMap,对应的我的博客地址是: http://blog.csdn.net/u012320459/article/details/47667869
SimpleAdapter adapter = new SimpleAdapter(this, getData(), R.layout.list_item, new String[] { "img", "title", "info" }, new int[] { R.id.img, R.id.title, R.id.info }); lv.setAdapter...
ListView 与ArrayAdapter,BaseAdapter,SimpleAdapter,SimpleCursorAdapter配合使用实例。
《List控件使用---SimpleAdapter使用详解(一)》对应源码,讲解了listView的使用,博文对应地址:http://blog.csdn.net/harvic880925/article/details/17258789
自己编写的,SimpleAdapter简单列子,供初学者参考
使用SimpleAdapter创建ListView。。。。另外设置资源分为1,实在是没办法了,没有积分去下载资源学习了,如果实在想要demo,可以去我博客看看,复制粘贴。
SimpleAdapter实现的GalleryDemo
Android的SimpleAdapter的一些简单应用,讲图片和列表结合。
这个是用SimpleAdapter实现了ListView的数据填充,并实现绚丽的表格效果,表格的样式可以自己随意定义,自己觉得对于初学者用ListView做表格效果是一个不错demo
ArrayAdapter和simpleAdapter的回顾,好长时间都没有写android了,今天出来溜溜,这个写的是最初的功能。 就是listview。simpleAdapter是左图片右文本、 这个适合初学者玩下。
simpleAdpter的Android桌面的图标列子,上面一个图片下载文字说明。
ListView和SimpleAdapter形成导航简单实例。
Android SimpleAdapter 列表(ListView)、表格(GridView)