我有一個由SimpleCursorAdapter和自定義ViewBinder支持的ListView。我想讓這個listview中的項目在點擊時改變它們的顏色。如果我在OnClickListener中這樣做 - 它可以單獨工作,改變點擊項目的顏色和列表中項目的顏色,每個第7(我想這個時間段取決於列表視圖的可視區域)。ListView項setTextColor修改其他元素
任何人都可以建議如何處理這個?或者,也許指向一個更優雅的方式,使listView中的項目可選?
謝謝。
UPD:(對不起,壞的格式 - 這是我第一次張貼問題):
下面是我如何努力使在ListView項目「選擇」:
private void setupListView(final ListView lv) {
lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
public void onItemClick(AdapterView<?> adapterView, View view, int position, final long id) {
RelativeLayout layout = (RelativeLayout) view;
int color;
if (conditionMet) {
color = R.color.gray;
} else {
color = R.color.red;
}
for(int i = 0; i < layout.getChildCount(); i++) {
((TextView)layout.getChildAt(i)).setTextColor(getResources().getColor(color));
}
return;
}}
這是我的init適配器:
final SimpleCursorAdapter adapter =
new SimpleCursorAdapter(
this,
itemId,
cursor,
from,
to
);
adapter.setViewBinder(new SimpleCursorAdapter.ViewBinder() {
public boolean setViewValue(View view, Cursor cursor, int columnIndex) {
final TextView textView = (TextView) view;
// do necessary conversions
return true;
}
});
listView.setAdapter(adapter);
你能告訴我們你的代碼嗎? – MByD 2011-04-24 09:18:17
添加了一些代碼,添加任何其他部分?實際上,正如我所說,這部分工作,因爲它「突出顯示」項目本身,但隨後它的視圖被重用,我想 – khusrav 2011-04-24 09:34:28