为了账号安全,请及时绑定邮箱和手机立即绑定

Android:具有多个可点击按钮的ListView元素

Android:具有多个可点击按钮的ListView元素

PIPIONE 2019-06-17 15:22:02
Android:具有多个可点击按钮的ListView元素我有一个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 button(单击元素的哪个按钮)int position(这是发生按钮单击的列表中的元素)最新情况:我在下面的回答中找到了一个解决方案。现在我可以通过触摸屏点击/点击按钮。但是,我不能用轨迹球手动选择它。它总是选择整个列表项,从那里直接进入下一个列表项,忽略按钮,即使我设置了.setFocusable(true)和setClickable(true)里面的按钮getView().我还将此代码添加到自定义列表适配器中:@Overridepublic boolean  areAllItemsEnabled() {     return false;           }@Overridepublic boolean isEnabled(int position) {         return false;}这会导致列表项不再可以选择。但这无助于使嵌套按钮可选。有什么主意吗?
查看完整描述

3 回答

?
互换的青春

TA贡献1797条经验 获得超6个赞

供未来读者:

要手动选择带有轨迹球的按钮,请使用:

myListView.setItemsCanFocus(true);

若要禁用对整个列表项的焦点,请执行以下操作:

myListView.setFocusable(false);myListView.setFocusableInTouchMode(false);myListView.setClickable(false);

它对我来说很好,我可以用触摸屏点击按钮,也可以用键盘分配焦点。


查看完整回答
反对 回复 2019-06-17
  • 3 回答
  • 0 关注
  • 741 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信