1
我有一個ListView。當我點擊一個ListItem,我設置列表項(它的視圖)的背景下,以另一種顏色:ListView選擇器問題:選擇不會被刪除
listView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> a, View v, int position, long id) {
setupDetailView(position);
setupChartView(position);
setupARView(position);
emptyView.setVisibility(View.INVISIBLE);
quotesAdapter.isSelected = true;
//v.setBackgroundResource(R.drawable.stocks_selector);
}
});
這裏是我的適配器:
private class QuoteAdapter extends ArrayAdapter<Quote> {
private ArrayList<Quote> items;
public boolean isSelected = false;
public QuoteAdapter(Context context, int textViewResourceId, ArrayList<Quote> items) {
super(context, textViewResourceId, items);
this.items = items;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if (v == null) {
LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE);
v = vi.inflate(R.layout.mainrow, null);
if(isSelected)
v.setBackgroundResource(R.drawable.red);
else
v.setBackgroundResource(R.drawable.transparent_background);
}
的問題是,如果我選擇多行,那麼多行具有彩色背景。我只希望被點擊的項目具有彩色背景。所以如果我點擊第2行,我希望它變成紅色,那麼如果我點擊第1行,我想第2行恢復正常,第1行變成紅色。
我該怎麼做?
沒有運氣,同樣的結果。 – 2010-09-27 22:10:50
你確實刪除了setBackground調用權嗎? – 2010-09-27 22:35:36
恩,你不需要州列表。 ListView將管理選擇的內容。查看SDK drawables(list .... xml)以瞭解如何構建選擇器。 – 2010-09-27 22:40:05