我得到了一个元素列表,其中包含一个获取要显示的元素列表的SimpleAdapter。对象列表中的元素(我传递给SimpleAdapter的元素)有一个字段,我想用它来区分要显示的元素(元素是TextView)的样式,但是我不知道怎么做。
提前感谢
Jaxer
发布于 2010-11-23 01:20:39
您需要子类化Adapter (或其子类型之一),并在getView方法中执行类似的操作:
TextView row;
// Recycle an already-inflated view if possible
if (convertView == null) {
row = (TextView) View.inflate(android.R.layout.simple_list_item_1, getContext());
} else {
row = (TextView) convertView;
}
SomeModel myItem = getItem(pos);
if (getItem(pos).displayFunky()) { //or whatever object condition you want to check
row.setTextColor(Color.RED)
} else {
row.setTextColor(Color.GREEN)
}
row.setText(myItem.getDisplayText());
return row;您也可以有一个具有多个View类型的自定义Adapter,但这是一个足够简单的情况,我可能不会费心去做。另请参阅this SO post。您还应该查看适配器的示例代码(例如,这里是one from NPR )和一个更复杂的多视图适配器tutorial。你也应该看看在Google /O 2009和2010上无与伦比的Romain Guy在ListViews上的演讲--他们将为你节省几个小时的心痛、困惑、痛苦和性能调整。
https://stackoverflow.com/questions/4248004
复制相似问题