ListView中Item有多个控件,其中控件的点击事件有问题

 我来答
硪丨暧恋
2017-10-03 · TA获得超过8980个赞
知道大有可为答主
回答量:5336
采纳率:93%
帮助的人:2178万
展开全部

可以使用handler异步处理

@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
ViewHolder holder = null;
if (convertView == null) {
convertView = mInflater.inflate(R.layout.icon_item, parent, false);
holder = new ViewHolder();
holder.text = (TextView) convertView.findViewById(R.id.item_text);
holder.icon = (ImageView) convertView.findViewById(R.id.item_icon);
holder.btn_del = (Button) convertView.findViewById(R.id.item_btn);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.text.setText(lists.get(position).get("sno"));
holder.icon.setImageResource(lists.get(position).get("image") == "0" ? R.drawable.flag_uk : R.drawable.flag_us);
final int location = position;
holder.btn_del.setFocusable(false);
holder.btn_del.setOnClickListener(new View.OnClickListener() {
// final String str=lists.get(location).get("sno");
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
new AlertDialog.Builder(mContext).setTitle("您确定删除吗?").setMessage(lists.get(location) + "\n"+lists.get(location).get("sno"))
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
Message message = new Message();
message.what = 1;
message.arg1 = location;
mHandler.sendMessage(message);
}
}).setNegativeButton("取消", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
}
}).show();
}
});
return convertView;
}

static class ViewHolder {
TextView text;
ImageView icon;
Button btn_del;
}



Handler mHandler = new Handler() {
public void handleMessage(android.os.Message msg) {
switch (msg.what) {
case 1:
lists.remove((int) msg.arg1);
adapter.notifyDataSetChanged();
break;
}
super.handleMessage(msg);
};
};
yx...v@163.com
2017-10-03 · 超过18用户采纳过TA的回答
知道答主
回答量:168
采纳率:100%
帮助的人:43.4万
展开全部
在给ListView设置Item控件的时候,给每个子控件设置一个OnClickListener就可以埃
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式