ListView - Поведение индекса и позиции при рестарте () - PullRequest
1 голос
/ 19 мая 2010

Я использую ListView с ArrayAdapter, который содержит объекты. Когда я выбираю элемент, я фиксирую позицию и индекс выбранного элемента. Если я прокручиваю вниз до выбора, позиция и индекс представляют местоположение элемента в списке. Выбор этого пункта приводит меня к другому занятию. Когда я использую кнопку «Назад», чтобы вернуться к списку, создается впечатление, что ListView получает новую позицию и индекс для видимых элементов.

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

Правильно ли мое понимание перерисовки ListView? Переименовывает ли он мои предметы, основываясь на том, что видно? -Когда в жизненном цикле вызывается getView ()? Есть ли способ принудительно обновить ListView, чтобы мой захваченный индекс все еще указывал на тот же объект?

Спасибо, Jason

1 Ответ

0 голосов
/ 19 мая 2010

Если у вас одинаковые элементы в ListView, у вас будет одна и та же позиция, когда вы нажимаете элемент ...

    @Override
    protected void onListItemClick(ListView l, View v, final int position, long id) {
        super.onListItemClick(l, v, position, id);
Toast.makeText(this, "This is the Item " + position + " of my listView",
                Toast.LENGTH_LONG).show();
        });

то же самое в функции getView () ...

  public View getView(int position, View convertView, ViewGroup parent) {
    Toast.makeText(this, "This is the Item " + position + " of my listView",
                        Toast.LENGTH_LONG).show();          
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...