android - ListView 中的 performItemClick 不突出显示项目

标签 android

然后我将 ListView 设置为:

<ListView
    android:id="@+id/list_menu_nav"
    android:layout_width="250dp"
    android:layout_height="wrap_content"
    android:choiceMode="singleChoice"
    android:listSelector="#fff">
</ListView>

适配器设置为:

navMenu = (ListView) findViewById( R.id.list_menu_nav );
navMenu.setAdapter( new ArrayAdapter<String>( this,
                    android.R.layout.simple_list_item_1,
                    menuList ) );

当我触摸一个项目时,它会变成白色背景(按照我的设置)。但是,当我如下所示单击一个项目时,它被选中但没有获得白色背景。

navMenu.performItemClick( navMenu.getChildAt( 1 ), 1, navMenu.getAdapter().getItemId( 1 ) );

我知道它已被选中,因为其他一切都按预期工作(调用的监听器,getCheckedItemPosition 返回正确的值)。

在这种情况下,正确的做法是什么?将布局替换为自定义布局并自己制作突出显示,或者是否有使用相同默认布局的方法?

最佳答案

根据这个,你只有 TextView:

所以这种行为是意料之中的。您必须为项目元素创建自己的布局以自定义选定状态。看这里:

关于android - ListView 中的 performItemClick 不突出显示项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20269058/

相关文章:

java - 将函数发送到新线程

android - 必须引用包含私钥和相应公钥证书链的有效 KeyStore key 条目

java - 如何以编程方式绘制特定的可绘制资源?

android - 使用 android 运行 proguard 时出现奇怪的错误 "Unexpected error while evaluating instruction"

android - gradle 3.0.0-alphaX 的库依赖问题

android - 如何为所有元素设置相同的选择器?

Android Azure 离线同步 - 未完成同步

Android 在 ImageView 中获取位图的位置

android - 有没有办法从 Firebase 数据库身份验证和 Firebase 数据库 UID 中删除匿名用户?

android - 在 aosp 构建期间将文件夹复制到/data/data/<package-name>/from system/app/<app> 文件夹