我ListView
在列表中的每个元素都包含一个TextView和两个不同的Button的地方。像这样:
ListView
--------------------
[Text]
[Button 1][Button 2]
--------------------
[Text]
[Button 1][Button 2]
--------------------
... (and so on) ...
使用此代码,我可以OnItemClickListener
为整个商品创建一个:
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> list, View view, int position, long id) {
Log.i(TAG, "onListItemClick: " + position);
}
}
});
但是,我不希望整个项目都可单击,而只希望每个列表元素具有两个按钮。
所以我的问题是,如何使用以下参数为这两个按钮实现onClickListener:
int button
(已单击元素的哪个按钮)int position
(这是列表中单击按钮的元素)
更新:我找到了下面我的答案中所述的解决方案。现在,我可以通过触摸屏单击/点击按钮。但是,我无法通过轨迹球手动选择它。它总是选择整个列表项,并从那里直接进入下一个表项忽略的按钮,即使我设置.setFocusable(true)
和setClickable(true)
在按钮getView()
。
我还将此代码添加到了自定义列表适配器中:
@Override
public boolean areAllItemsEnabled() {
return false;
}
@Override
public boolean isEnabled(int position) {
return false;
}
这导致根本没有列表项可供选择。但这并没有使嵌套按钮变为可选。
有人知道吗?