Listview item里面多按钮点击回调

//在adapter中设置回调接口,供调用
public interface Callback {
    public void click(View v, int position, int which);
}

public testAdapter(Context context, List<String> taskList, Callback callback) {
    mContext = context;
    mtaskList = taskList;
    mCallback = callback;
}

 
@Override
public View getView(final int position, View convertView, ViewGroup viewGroup) {
    ViewHolder holder;
    if (convertView == null) {
        LayoutInflater inflater = LayoutInflater.from(mContext);
        convertView = inflater.inflate(R.layout.task_list_item, null);
        holder = new ViewHolder(convertView);
        convertView.setTag(holder);
    } else {
        holder = (ViewHolder) convertView.getTag();
    }
    //获取按钮的id
    final int viewId1= holder.tvTaskVerify.getId();
    holder.tvTaskVerify.setTag(position);
    holder.tvTaskAddress.setTag(position);
    holder.tvTaskVerify.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            mCallback.click(view, position, viewId1);
        }
    });

    final int viewId2= holder.tvTaskAddress.getId();
    holder.tvTaskAddress.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            mCallback.click(view, position, viewId2);
        }
    });
    return convertView;
}


//在activity中调用

//activity 实现这个接口implements testAdapter.Callback 

 

VerifyTaskAdapter taskAdapter = new (this, taskList, this);
listView.setAdapter(taskAdapter);

    /**
     * * item的按钮点击事件回调 * * @param v * @param position 位置 * @param which 点击view的id
     */


    @Override
    public void click(View v, int position, int which) {
        switch (which) {
            case R.id.tv_task_verify:
                ToastUtil.showToast("点击了第一个" + position);
                // TODO: 2018/6/7 
                break;
            case R.id.tv_task_address:
                ToastUtil.showToast("点击了第二个" + position);
                // TODO: 2018/6/7 
                break;
            default:
                break;
        }
    }


/** * * item的按钮点击事件回调 * * @param v * @param position 位置 * @param which 点击view的id */@Overridepublic void click(View v, int position, int which) { switch (which) {    case R.id.tv_task_verify: ToastUtil.showToast("点击了第一个" + position); // TODO: 2018/6/7 break; case R.id.tv_task_address: ToastUtil.showToast("点击了第二个" + position); // TODO: 2018/6/7 break; default: break; }}我这个例子是item里面两个TextView的点击事件,自己根据需求进行改动
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值