//在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的点击事件,自己根据需求进行改动