猿问

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

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;}

这会导致列表项不再可以选择。但这无助于使嵌套按钮可选。

有什么主意吗?


PIPIONE
浏览 742回答 3
3回答

互换的青春

供未来读者:要手动选择带有轨迹球的按钮,请使用:myListView.setItemsCanFocus(true);若要禁用对整个列表项的焦点,请执行以下操作:myListView.setFocusable(false);myListView.setFocusableInTouchMode(false);myListView.setClickable(false);它对我来说很好,我可以用触摸屏点击按钮,也可以用键盘分配焦点。
随时随地看视频慕课网APP

相关分类

Android
我要回答