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

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

    遇到的其中一个问题就是,如何为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);

    }
  



   

   


   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值