在android的listview中更改指定项的颜色

在android的listview中更改指定项的颜色,android,android-listview,Android,Android Listview,我只想更改listview中一个项目的文本颜色 此更改将由运行异步任务的结果触发 到目前为止,我在google上搜索,发现的只是覆盖适配器的getView()函数,但这种方法有点困难,因为我需要将要着色的行的id保留在一个全局变量中,这个全局变量将由getView()访问 当事件发生时,是否有其他方法可以简单地从listview设置项目的文本颜色 编辑 我通过以下方式创建listview: myListView = (ListView) findViewById(R.id.listView);

我只想更改listview中一个项目的文本颜色

此更改将由运行异步任务的结果触发

到目前为止,我在google上搜索,发现的只是覆盖适配器的getView()函数,但这种方法有点困难,因为我需要将要着色的行的id保留在一个全局变量中,这个全局变量将由getView()访问

当事件发生时,是否有其他方法可以简单地从listview设置项目的文本颜色

编辑

我通过以下方式创建listview:

myListView = (ListView) findViewById(R.id.listView);
listAdapter = new ArrayAdapter<String>(this, R.layout.simplerow);
listAdapter.add("test");
myListView.setAdapter(listAdapter);
myListView=(ListView)findViewById(R.id.ListView);
listAdapter=newarrayadapter(this,R.layout.simplerow);
添加(“测试”);
myListView.setAdapter(listAdapter);

您可以在适配器中设置自定义对象可视颜色,然后在此适配器中更改颜色,并调用notifyDataSetChanged()

为列表项设置颜色。您确实需要覆盖
适配器的
getView()
方法。下面是一个小示例,用于在不使用项目id的情况下更新列表项目的颜色

    ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.simplerow) {
                @Override
                public View getView(int position, View convertView, ViewGroup parent) {
                    View view = super.getView(position, convertView, parent);
                    if (position % 2 == 0) {  //Place the condition where you want to change the item color.
                        view.setBackgroundColor(Color.GRAY);
                    } else {
                         //Setting to default color.
                        view.setBackgroundColor(Color.WHITE);
                    }
                    return view;
                }
            };
ArrayAdapter adapter=新的ArrayAdapter(this,R.layout.simplerow){
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
视图=super.getView(位置、转换视图、父级);
如果(位置%2==0){//将条件放置在要更改项目颜色的位置。
视图.背景颜色(颜色.灰色);
}否则{
//设置为默认颜色。
视图.setBackgroundColor(颜色.白色);
}
返回视图;
}
};

在上面的示例中,偶数位置的所有列表项都将为
灰色
颜色,其他列表项将为
白色
颜色。如果不实现
getView()
,我们就无法做到这一点。仅供参考

如何创建ListView?如果通过创建SimpleCursorAdapter列表,您可以使用((TextView)视图来更改颜色;我是Android编程新手。。。我不太明白你的答案。您所说的意味着覆盖getView()。我想知道还有没有别的办法。