Проблема с селектором ListView: выделение не удаляется

У меня есть ListView. Когда я нажимаю на ListItem, Я установил фон ListItem (его вид) на другой цвет:

  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 стала красной.

Как можно Я делаю это?

1
задан Sheehan Alam 27 September 2010 в 22:59
поделиться