android - 根据列表android中的值更改listview中列表项的颜色

标签 android android-listview

我正在尝试根据项的值更改 fragment 中 ListView 中列表项的颜色。任何建议都会很棒。我用 getView() 尝试了几个选项,但没有成功。

String[] validvalues = new String[] {personalList, doctorsList,carerList,
    myMedList,mymedproblist,kinList,relyList,allergiesList
};

ArrayAdapter<String> files2 = new ArrayAdapter<String>(
    getActivity(), android.R.layout.simple_list_item_1,validvalues);
View view2 = inflater.inflate(R.layout.verify, container, false);

list.setAdapter(files2);
list.setOnItemClickListener(new OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view2,int position, long id) {
        String str = list.getItemAtPosition(position).toString();
        Toast.makeText(getActivity(), position + " " + str,Toast.LENGTH_SHORT).show();
    }
});

类似于 if string.contains("!!") > 将背景颜色设置为红色。

最佳答案

不使用 ArrayAdapter,而是创建一个自定义适配器类(可能派生自它)。然后,在 getView() 方法中,设置返回 View 的背景颜色。例如,只需将代码中的 ArrayAdapter 创建更改为:

ArrayAdapter<String> files2 = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,validvalues)
{
    @Override
    public View getView(int position, View convertView, ViewGroup parent)
    {
        View itemView = super.getView(position, convertView, parent);
        if (getItem(position).contains("!!"))
            itemView.setBackgroundColor(Color.RED);

        return itemView;
    }
};

关于android - 根据列表android中的值更改listview中列表项的颜色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23474804/

相关文章:

android - 在 Kotlin 中的 Fragment 类之间切换

android - 如何以编程方式更改 ListView 内 TextView 的背景颜色?

android - 无限滚动的ListView

java - 解析颜色不再适用于十六进制值

android - 如果 ListView 不滚动,ListView.onSaveInstanceState() 不起作用

java - Android - 从 ArrayList 中删除项目

安卓 ListView : Different colours in Items and SubItems?

Android studio 构建 apk 时出现 transformClassesAndResourcesWithProguardForRelease 错误

安卓换壁纸

java - 如何在android中的ViewModel中将数据从一个LiveData对象获取到另一个对象?