一个关于android中ListView的子控件中按钮事件的简单方法。

本人查找资料,参考CSDN的JZHowe方法建立了一个处理ListView的item中的控件事件处理万能适配器;
适配器代码如下:

//继承SimpleAdapterpublic class ListViewAdapter extends SimpleAdapter {    //创建方法不变    public ListViewAdapter(Context context, List<? extends Map<String, ?>> data, int resource, String[] from, int[] to) {        super(context, data, resource, from, to);    }//对getView方法重写,getView在ListView绘制时会调用,具体看SimpleAdapter源代码    @Override    public View getView(int position, View convertView, ViewGroup parent) {        View item=super.getView(position, convertView, parent);//父类方法返回的View相当于单个item控件        if(mOnClickListeber!=null){//我们检查自己创建的接口是否为空,不为空就调用接口方法,这个接口在后面设计            //相当于将ListView的item控件和该item的位置(第几个item)传入函数,            //我们就可以通过该item和item的位置操作item和item中的子控件了            mOnClickListeber.onClick(item,position);        }       // 一定要返回这个item,否则无法显示ListView        return item;    }    //添加一个接口    public interface onClickListener{    //添加一个接口方法,处理item,及其子控件        void onClick(View view,int position);    }    //创建一个接口对象,用于类外设置和内部调用;    private onClickListener mOnClickListeber=null;    //创建一个方法来让类外设置接口对象    public void setOnClickListeber(onClickListener mOnClickListeber){        this.mOnClickListeber=mOnClickListeber;    }}

现在我们有了一个适配器,就可以交个ListView用了。
ListViewAdapter 的创建和SimpleAdapter一样。

//创建ListView适配器final ListViewAdapter simpleAdapter=new ListViewAdapter(context,listData,R.layout.music_list,new String[]{"text_musicName","text_number"},new int[]{R.id.text_musicName,R.id.text_number});       //将适配器添加到listView中        listView.setAdapter(simpleAdapter);        //设置事件处理接口        simpleAdapter.setOnClickListeber(new ListViewAdapter.onClickListener() {            @Override            public void onClick(View item, final int position) {                //在这里设置处理事件,                //获取item的子控件,例如                TextView textView=item.findViewById(R.id.text_musicName);//R.id.text_musicName为每个Item布局文件中子控件id;                //现在可以对textView设置各种事件了,如设置点击事件                textView.setOnClickListener(new View.OnClickListener() {                    @Override                    public void onClick(View v) {                        listData.remove(position);//点击哪一个item中的textView就删除哪一个数据                        simpleAdapter.notifyDataSetChanged();//更新适配器,从而就更新了ListView                    }                });                //同时也可以给item添加事件            }        });

好了,现在我们已经成功了,这个方法可能不是最好的,本人小白一枚,有更好的方法希望留言让我学习,希望一起进步。

更多相关文章

  1. 使用Android常用控件与布局实现美观的登录页面
  2. Android 中的Paint类主要方法
  3. Android设置全屏的方法
  4. Android系统添加全局快捷键的方法
  5. Android 日志工具(log)的使用方法
  6. Android学习笔记-ProgressBar和ListView使用方法(二)
  7. Android getResources().getConfiguration()方法的作用
  8. android适配器的使用

随机推荐

  1. Android安装步骤
  2. Android中打开新的Activity的三种方法
  3. 【Android】使用SharedPreferences判断应
  4. android键盘挡住界面
  5. 为什么 Android(安卓)手机总是越用越慢
  6. Android adb input 命令介绍
  7. Android Native Browser下载存储路径选择
  8. Cordova 3.x 源码分析(2) -- cordova.js概
  9. Android下用Media Player实现一个最简单
  10. Android学习笔记:androidmanifest.xml 高