4

我看过很多关于这个问题的帖子,但似乎没有一个有效。所以这里。

我正在 ICS / JB 中测试我的 Android 应用程序。我有一个项目列表,长按该列表上的一个项目,我将显示一个上下文操作栏。

一旦操作栏弹出,列表选择器就会丢失。只要操作栏保持不变,我希望它保持持久。

我使用了选择器。1 用于列表选择器,另一个用于列表项选择器。我也尝试过激活状态。

唯一最终起作用的是当我手动更改项目单击侦听器的背景时。但是,跟踪选择了哪些项目以及没有选择哪些项目并根据它们的状态重置它们变得太复杂了。

当在其上下文中执行操作时,是否有一种直接的方式可以突出显示列表项。

请指教。我对这个问题发疯了。

回应 Al:在其中一种排列中,选择确实出现但不会消失。

如果我关闭上下文操作栏或选择栏中的菜单项,它会保留。如果我再次选择相同的项目,它会保留。

唯一的方法是单击列表中的另一个项目,然后选择转移到新项目。

项目选择:

<selector xmlns:android="http://schemas.android.com/apk/res/android">
           <item 
    android:state_selected="true" 
    android:drawable="@android:color/black" />
            <item 
    android:state_activated="true" 
    android:drawable="@android:color/holo_blue_bright" />  
           <item 
    android:state_activated="true" android:state_focused="false"
    android:drawable="@android:color/holo_orange_light" />   
           <item 
    android:state_focused="true" 
    android:drawable="@drawable/selectedrow" />
      <item 
    android:state_pressed="true" 
    android:drawable="@android:color/holo_green_dark" />
       <item android:state_focused="false"
    android:drawable="@android:drawable/btn_radio" />
</selector>
4

1 回答 1

0

如果您的选择器设置正确,则将 onItemLongClick 上收到的视图设置为 selected 应该这样做

public boolean onItemLongClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
    arg1.setSelected(true);
    return true;
}
于 2013-02-10T17:09:00.213 回答