GridView: получить представление по позиции - PullRequest
9 голосов
/ 05 июля 2011

Я использую сетку для отображения календаря на месяц.Когда я касаюсь даты в календаре, соответствующая ячейка выделяется изменением фона и цвета текста.Все работает как очарование, за исключением того факта, что я не могу отменить выделение ячейки, если я выбираю новую дату.

Когда я нажимаю на дату, я запоминаю позицию, поэтому, когда я выбираю новую, я знаю, гдеЯ щелкнул ранее:

protected OnClickListener onClicThisMonthDate(final int position)
{
    return new OnClickListener() {

        @Override
        public void onClick(View v) 
        {
            if(prevDateSelected > -1 )
            {
                //Get the view by the oldPosition
                //Change its background and text color
            }
            prevDateSelected = position;
            TextView casecal = (TextView) v.findViewById(R.id.case_cal);
            casecal.setBackgroundColor(Color.rgb(93, 94, 94));
            casecal.setTextColor(Color.WHITE);
        }
    };
}

Есть ли решение, чтобы получить представление по его позиции?Какой самый эффективный способ выбрать ячейку и снять все остальные?Примечание. Под «выделением ячейки» я подразумеваю ее выделение, изменив стиль.

1 Ответ

18 голосов
/ 05 июля 2011

ViewGroup.getChildAt возвращает представление в указанной позиции в группе.

GridView.setSelection выбирает вид в позиции и отменяет выбор других видов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...