单击按钮时触发OnItem单击列表视图

时间:2011-11-26 09:35:19

标签: android listview onclick onitemclick

我有一个ListView,其中包含每个项目的按钮。 我希望项目单击将导致列表的OnItemClick事件触发, 因为该事件包含的信息(id,position)比按钮的OnClick事件更多。

这是列表中的一个重要操作,这就是为什么我需要按钮并且不希望常规项目点击会导致它被激活(我想让按钮可以聚焦就可以了。)

这可能吗?

2 个答案:

答案 0 :(得分:2)

该行是否也可点击?根据行是否可点击,我可能会执行以下操作之一;

  1. 您可以在按钮上设置clickable=false,然后让触摸正确到达父级,即按钮所在的列表视图行,然后应通知onItemClickListener那一行

  2. 您可以在按钮上设置标记(View.setTag(..)),该按钮报告按钮所在行的位置,并在onClickListener

    <中读取此标记/ LI>
  3. 您可以在此页面上按照freshDroid建议的答案进行操作,但这样做效率很低,因为您创建新的OnClickListener时创建/回收视图会导致额外的GC工作。

答案 1 :(得分:-1)

尝试为list创建自己的适配器。在getView()方法中,满足您的需求。

setListAdapter(new ArrayAdapter<string>(this, R.layout.list_item, strings) {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row;

if (null == convertView) {
row = mInflater.inflate(R.layout.list_item, null);
} else {
row = convertView;
}

Button bt1 = (Button) row.findViewById(android.R.id.bt1);
bt1.setOnClickListener(new View.OnClickListener() {
       public void onClick(View v){
       //you will get position and do necessary method 
       }
});

return row;
}
});