我使用的adapter是SimpleAdapter,以下是我的代码。我想把第三列改为红色,但是改为的效果如图二,每次都只有一行会变为红色,而且一滑动,红的那一行还会变换。
// 用于通知主线程执行更新view的操作的类
// 必须使用若引用才可以正常执行
private class MyHandler extends Handler{
@Override
public void handleMessage(Message msg) {
// 若登录成功则跳入主界面
if (msg.what == COMPLETED_Affair) {
TextView test = (TextView) findViewById(R.id.Time);
// 字的颜色改为红色
test.setTextColor(Color.RED);
ListView listview = (ListView) findViewById(R.id.listview_affair);
SimpleAdapter adapter = new SimpleAdapter(getApplicationContext(), data_affair, R.layout.list_view, new String[]{"ID", "Brief", "time_state"}, new int[]{R.id.ID, R.id.Brief, R.id.Time});
//SpecialAdapter adapter = new SpecialAdapter (getApplicationContext(), data_affair, R.layout.list_view, new String[]{"ID", "Brief", "time_state"}, new int[]{R.id.ID, R.id.Brief, R.id.Time});
listview.setAdapter(adapter);
} else if (msg.what == COMPLETED_Task) {
ListView listview = (ListView) findViewById(R.id.listview_task);
SimpleAdapter adapter = new SimpleAdapter(getApplicationContext(), data_task, R.layout.list_view, new String[]{"ID", "task_name", "time_state"}, new int[]{R.id.ID, R.id.Brief, R.id.Time});
listview.setAdapter(adapter);
}
}
}
图二:
请问这是什么原因呢?
5 个解决方案
#1
在getView里面修改指定你要修改那个View的颜色即可。
#2
一直是红色的,直接改XML文件好了
#3
但是为何我能改一行的颜色。
#4
跟我发的那个问题 有点像 楼主可以去我那个帖子看一下
地址 http://bbs.csdn.net/topics/391037105
问题提的不是你这个 你在评论里看一下
地址 http://bbs.csdn.net/topics/391037105
问题提的不是你这个 你在评论里看一下
#5
使用自定义适配器BaseAdapter 在getview方法里面操作
#1
在getView里面修改指定你要修改那个View的颜色即可。
#2
一直是红色的,直接改XML文件好了
#3
但是为何我能改一行的颜色。
#4
跟我发的那个问题 有点像 楼主可以去我那个帖子看一下
地址 http://bbs.csdn.net/topics/391037105
问题提的不是你这个 你在评论里看一下
地址 http://bbs.csdn.net/topics/391037105
问题提的不是你这个 你在评论里看一下
#5
使用自定义适配器BaseAdapter 在getview方法里面操作