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);
    }
}

相关文章

Android性能优化——之控件的优化 前面讲了图像的优化,接下...
前言 上一篇已经讲了如何实现textView中粗字体效果,里面主要...
最近项目重构,涉及到了数据库和文件下载,发现GreenDao这个...
WebView加载页面的两种方式 一、加载网络页面 加载网络页面,...
给APP全局设置字体主要分为两个方面来介绍 一、给原生界面设...
前言 最近UI大牛出了一版新的效果图,按照IOS的效果做的,页...