《Android那些事》——ListView中Button点击事件解决方案

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zzp961224/article/details/75191947

    说一说写这篇文章的原因,最近在做一个项目,有涉及到用户回复的功能

    遇到的其中一个问题就是,如何为ListView中的Button设置点击事件?

    在此将解决方案分享给大家

 

    第一步:如何在ListView中放入一个Button?

    答:1.在layout中写一个自定义控件,其内包含button(我的xml文件叫做custom_layout.xml)

            2.再新建一个装有ListView的xml文件()

   

    第二步:新建一个adapter继承BaseAdapter,重写getView方法,引入刚刚所写的自定义控件(我在项目中用到的是ImageButton,跟Button是一样的)

    @Override
    public View getView(int i, View convertView, ViewGroup viewGroup) {

        final ViewHolder holder;
        // 重用convertView
        if (convertView == null) {
            holder = new ViewHolder();
            convertView = LayoutInflater.from(context).inflate(R.layout.custom_layout, null);
            //初始化ImageButton

            holder.btn_cmt_like = (ImageButton) convertView.findViewById(R.id.cmt_like_icon);
          
           convertView.setTag(holder);
        } else {
            holder = (ViewHolder) convertView.getTag();
        }

        holder.btn_cmt_like.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (holder.CMT_LIKE_FLAG) {

                } else {
                    holder.cmt_like_count.setText(............);
                }
            }
        });
        //注:这样能使所有listview的item都共用同一个listener,
        // 而不用为每个item都设置各自的listener!!!
        holder.btn_cmt_like.setTag(i);
        return convertView;
    }

    /**
     * 静态类,便于GC回收
     */
    public static class ViewHolder {

        ImageButton btn_cmt_like;

    }
 

     第三步:新建一个activity文件,暂时就叫main_activity,在activity中引入listview_layout.xml

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_user_pub_msg_detail);

    }
  



   

   


   

猜你喜欢

转载自blog.csdn.net/zzp961224/article/details/75191947