如果在一个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(){@Overridepublic boolean setViewValue(View view, Object data , String textRepresentation) {// TODO Auto-generated method stubif(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}){@Overridepublic View getView(int position, View convertView, ViewGroup parent) {// TODO Auto-generated method stubif(convertView==null){convertView=View.inflate(HTTPRequestActivity.this, R.layout.user, null);}final Button button=(Button)convertView.findViewById(R.id.group);        button.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View arg0) {// TODO Auto-generated method stubString groupname=(String)button.getText();}        });return super.getView(position, convertView, parent);}                };

在里面就可以添加消息响应了,注意:这个button的消息响应不能定义在oncreate()函数当中,是因为button是定义在item的布局文件当中的,所以所有item中的button共用一个button,其id相同,如果定义在oncreate中,就相当于给每一个item的button都定义。这是不可能的,根本无法获取其button对象,所以会报空指针错。只有在getview中得到button对象。

更多相关文章

  1. macOS系统下搭建Android开发环境
  2. Android杂识
  3. Android(安卓)属性动画(Property Animation)完全解析 (下)
  4. Android自定义控件之测量onMeasure
  5. URI数据匹配
  6. Android(安卓)JNI代码
  7. Android基础之Android动画
  8. Android(安卓)的 system property service
  9. Android获取短信session

随机推荐

  1. 廖雪峰Python教程 学习笔记3 hello.py
  2. 如果前面的任务成功,芹菜会运行任务
  3. Python简介及入门
  4. 函数参数中裸星号的目的是什么?
  5. 用python写MapReduce函数——以WordCount
  6. cv2.createShapeContextDistanceExtracto
  7. 关于python中的类方法(classmethod)和静态
  8. IIS 部署 python web框架 Flask
  9. Python实现AHP(层次分析法)
  10. 用python绘出一个莫比乌斯环