gpt4 book ai didi

Android 2.3 中所选项目的 Android 选择器状态?

转载 作者:行者123 更新时间:2023-11-29 17:57:51 25 4
gpt4 key购买 nike

我正在尝试在我的应用程序的抽屉导航中使用 ListView。我想让人们在这个 ListView 中选择多个项目(对应于我应用中的一些标签),并向用户显示选择了哪一个。

我在 Android >=4.0 上使用以下可绘制对象,它被设置为 ListView 中每个项目的背景。

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:state_activated="true" android:drawable="@drawable/list_pressed_holo_light" />
<item android:drawable="@color/transparent" />
</selector>

而且它在那个版本上工作得很好。但是在 Android 2.3(模拟器)上,一旦选择它就不会显示任何反馈。

我还尝试了其他在我的模拟器上效果不佳的选择器可绘制对象,例如

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/solid_white" android:state_activated="false"/>
<item android:drawable="@drawable/solid_white" android:state_activated="false" android:state_pressed="false"/>
<item android:drawable="@drawable/listitem_pressed" android:state_pressed="true"/>
<item android:drawable="@drawable/listitem_focused" android:state_activated="true"/>
</selector>

请注意,在我的 Java 代码中,我使用以下行来设置用户单击时选中的项目:

this.mDrawerList.setSelection(position);

最佳答案

因此,感谢 Jonathan 发布的对教程的评论,我设法找到了解决方法。

由于 state_activated 仅在 Android API 级别 11 上添加,旧设备无法使用它。但是,他们可以使用 state_checked,所以你只需要添加一个 layout-v11包含最新布局的文件夹(对我来说是 TextView ),然后放入 layout文件夹,旧版本 android 的布局,可以检查(对我来说是 CheckedTextView )。

然后,在您的 list.onItemClickListener 上您现在可以检查 API lvl 和 if(Build.VERSION.SDK_INT <= Build.VERSION_CODES.HONEYCOMB) ,然后只需检查 CheckedTextView viewClicked.setChecked(!viewClicked.isChecked());

关于Android 2.3 中所选项目的 Android 选择器状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18036596/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com