我有一个ListView,其中列表中的每个元素包含一个TextView和两个不同的按钮。这样的东西:

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按钮(该按钮的元素已被点击)

> int position(这是发生按钮点击的列表中的元素)

更新:我找到一个解决方案,如我在下面的答案所述。现在我可以点击/点击按钮通过触摸屏。但是,我无法使用轨迹球手动选择它。它总是选择整个列表项,从那里直接到下一个列表项忽略的按钮,即使我设置.setFocusable(true)和setClickable(true)的按钮在getView()。

我也添加了这个代码到我的自定义列表适配器:

@Override

public boolean areAllItemsEnabled() {

return false;

}

@Override

public boolean isEnabled(int position) {

return false;

}

这导致没有任何列表项目是可选择的。但它没有帮助使嵌套按钮可选。

任何人的想法?

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐