BaseAdapter的使用,以及用ids代替相同的控件ID

public class LiveReplyListAdapter extends BaseQuickAdapter, BaseViewHolder> {

    private Context context;
    private String masterComentId;

    /**
     * 点击监听
     */
    private View.OnClickListener listener;

    /**
     * 长按监听事件
     */
    private View.OnLongClickListener longListener;


    public LiveReplyListAdapter(Context mcontext) {
        super(R.layout.live_reply_item_direct_comment);
        this.context = mcontext;
    }

    public void setMasterComentId(String masterComentId) {
        this.masterComentId = masterComentId;
    }

    /**
     * 将监听从Adapter传到用到AdapterActivity
     */
    public void setListener(View.OnClickListener listener) {
        this.listener = listener;
    }

    /**
     * 用于长按删除
     */
    public void setLongListener(View.OnLongClickListener longListener) {
        this.longListener = longListener;
    }


    @Override
    protected void convert(BaseViewHolder helper, final LiveReplyListBean.ReplyBean item) {
        /**
         * 这里的数据将添加到recyclerView         */
        helper.setText(R.id.tv_name, item.getReplyname());
        helper.setText(R.id.tv_time, item.getReplytime());
        helper.setText(R.id.tv_content, item.getReplytext());
        LinearLayout mReceiveNameLl = helper.getView(R.id.reply_item_receive_name_ll);
        helper.setText(R.id.reply_item_receive_name_tv, item.getReceivename() + ":");
        helper.setOnClickListener(R.id.reply_item_receive_name_tv, new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(context, LivePersonalHomepageActivity.class);
                intent.putExtra(BundleConstant.BULDLD_OTHER_ID, item.getReplypeople());
                intent.putExtra(BundleConstant.BULDLD_VIEW_TYPE, BundleConstant.BULDLD_VIEW_OTHER_INFO);
                context.startActivity(intent);
            }
        });
        helper.setOnClickListener(R.id.live_reply_item_head_iv, new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(context, LivePersonalHomepageActivity.class);
                intent.putExtra(BundleConstant.BULDLD_OTHER_ID, item.getReplypeople());
                intent.putExtra(BundleConstant.BULDLD_VIEW_TYPE, BundleConstant.BULDLD_VIEW_OTHER_INFO);
                context.startActivity(intent);
            }
        });
        if (!item.getReceivepeople().equals(masterComentId)) {
            mReceiveNameLl.setVisibility(View.VISIBLE);
        } else {
            mReceiveNameLl.setVisibility(View.GONE);
        }

        /**
         * 点击回复,adapter传到activity
         */
//        helper.setTag(R.id.ll_delet_item, item.getUxid());
//        helper.setOnClickListener(R.id.ll_delet_item, listener);


        /**
         * LinearLayout不能直接用helper.setTag(R.id.ll_delet_item, item.getUxid());方式取到ID
         * 需要将LinearLayoutID(ll_delet_item,包括了长按和点击)换个ids即可
         * 
         * 
         *  ;
         *  ;
         * 
         */
        LinearLayout contentLl = helper.getView(R.id.ll_delet_item);

        /**
         * 长按将控件ll_delet_item传到activity————>adapter.setLongListener(this);
         */
        contentLl.setTag(R.id.live_id_del, item.getUxid());
        contentLl.setOnLongClickListener(longListener);

        /**
         * 点击
         */
        contentLl.setTag(R.id.live_id_comment_id, item.getComid());
        contentLl.setTag(R.id.live_id_reply, item.getReplypeople());
        contentLl.setOnClickListener(listener);


        /**
         * 如果不将ll_delet_itemID替换掉,则不管点击还是长按,只会执行最后一条
         * 原理,控件ll_delet_item被触发,先执行第一个(被覆盖了),然后执行最后一个,
         */
        helper.setTag(R.id.ll_delet_item,item.getUxid());
        helper.setOnClickListener(R.id.ll_delet_item,listener);
        
        helper.setTag(R.id.ll_delet_item,item.getComid());
        helper.setOnLongClickListener(R.id.ll_delet_item,longListener);

    }
}

你可能感兴趣的:(BaseAdapter的使用,以及用ids代替相同的控件ID)