我的应用程序中有一个非常简单的列表视图。我允许用户点击列表视图上调用新活动的任何项目以显示该项目的附加信息。这发生在单选模式中。我还允许用户长按我提供上下文菜单的任何项目。该上下文菜单中的选项之一是多选。它使用户可以选择多个项目并一次删除它们。在这种情况下,我切换到 CHOICE_MODE_MULTIPLE_MODAL。
要更改所选项目的背景,我在指向选择器的列表视图项目布局 xml 中使用背景可绘制对象。如下所示:
列表项布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/multi_background"
android:orientation="horizontal"
android:id="@+id/foo_bar">
<TextView android:id="@+id/foo_bar_desc"
android:layout_width="match_parent"
android:textSize="22sp"
android:layout_height="wrap_content"/>
</LinearLayout>
可绘制的多背景:
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:state_activated="true" android:drawable="@color/DarkBlue"></item>
</selector>
在多选模式中选择多个项目时,这可以正常工作并给出所需的结果。但是,一旦我在列表视图上调用多选选项后,即使我点击列表项以查看其他信息,背景也会变为蓝色大约一秒钟,然后切换到活动以显示其他信息。但是,如果我在进入应用程序后点击列表项而不进入多选选项,则行为很好。轻按项目的背景更改为 Holo 主题的默认深灰色,并且显示附加信息的活动将在没有一秒延迟的情况下启动。
我没有做我应该做的事吗?任何帮助将不胜感激。