我正在编写一个应用程序,用于检查我们的“webservice”并返回“Managed”或“Unmanaged”状态,我在listview中保留了一个运行搜索历史记录(直到用户清除它),这一切都很正常。如果状态是“Managed”,我希望单个文本视图项目为绿色,如果是“Unmanaged”,我希望单个项目为红色。
//This is the String Array which gets populated later.
ArrayList<String> _searchHistoryList = new ArrayList<String>();
//Here is where I override the getView to try to change the color.
listAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, _searchHistoryList) {
@Override
public View getView(int position, View convertView, ViewGroup parent) {
TextView textView = (TextView) super.getView(position, convertView, parent);
String _currentStatus = appSettings.getString("current_status", "na");
int textColor;
if (_currentStatus.equals("Managed")){
textColor = R.color.green_text;
} else {
textColor = R.color.red_text;
}
textView.setTextColor(getResources().getColor(textColor));
return textView;
}
};
lvSearchHistory.setAdapter(listAdapter);
上述代码实际上将整个列表视图变成了最后一个搜索项的颜色。(例如,如果最后一次搜索结果是“已管理”的结果,则整个项目列表将变为绿色,而不仅仅是单个项目)。
有人能指导我正确的方向吗?