android – setItemChecked(int position,boolean value)不工作?

前端之家收集整理的这篇文章主要介绍了android – setItemChecked(int position,boolean value)不工作?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个listview,可以自定义显示图像和2 textview.我只是想突出我列表中的一个项目.

首先,我使用listview的setSelection方法,我终于发现它不是因为它不在触摸模式下工作.

所以,我做了一些搜索,发现我需要使用setItemChecked方法.因此,我制作了一个状态列表颜色.

<?xml version="1.0" encoding="UTF-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_checked="true" android:drawable="@color/checkBox_bg_fcs" />
    <item android:drawable="@color/WHITE" />
</selector>

我用它来设置我的自定义列表项的背景颜色.

从List活动中,我将setItemChecked(position,true)调用到listview的特定索引.

不幸的是,它似乎对我不起作用.有什么遗漏?谁有运气呢?

注意**,我确实从网络中检索列表视图的数据.我的listview中有数据之后才进行setItemChecked.
我的列表视图也是单选模式.

解决方法

我担心在Android框架中这样做并不容易.

为了使setSelection(…)正常工作,您的View必须实现follogin接口:android.widget.Checkable

您可能正在使用View的某些布局(可能是LinearLayout中的图像和2文本视图?),但它没有实现Checkable接口.

你可以做的是创建一个实现Checkable的自定义View类.

请查看以下链接获取可检查的LinearLayout:

http://tokudu.com/2010/android-checkable-linear-layout/

如果要更改背景,请重写setChecked方法以执行所需操作.
很简单的例子:

@Override
public void setChecked(boolean checked) {
    if (checked) {
        this.setBackgroundColor(Color.RED);
    } else {
        setBackgroundColor(Color.BLACK);
    }
}
原文链接:https://www.f2er.com/android/316874.html

猜你在找的Android相关文章