2010-06-25 2 views
1

У меня есть ListView, содержимое которого может измениться в любой момент (например, список городов в состоянии, новый город может быть добавлен в состояние в нашей базе данных в любое время). Как я могу реализовать, если это возможно, событие onListItemClick для работы с этим? Например, если пользователь выбирает определенный город в ListView, я должен иметь возможность передать значение, которое независимо определяет, какой город был нажат на мое следующее действие. Я не могу слушать позиции, потому что они могут измениться с добавлением или удалением города. Какие-либо предложения?Использование onListItemClick с управляемым данными ListView

ответ

1

В этом случае вы должны написать свой собственный адаптер (например, расширение BaseAdapter) и перезаписать getItemId метод:

@Override 
public long getItemId(int posicion) { 
    return somethingThatIdentifyTheCityThatWasClicked; 
} 

Остальное будет кусок пирога, так как метод onListItemClick получает этот идентификатор:

@Override 
protected void onListItemClick(ListView l, View v, int position, long thisID) 
{  
    // use the 'thisID' variable 
} 
+0

Я собираюсь попробовать это и вернуться к вам, но похоже, что это именно то, что мне нужно. Благодаря! – bschultz

+0

Кажется, я не могу заставить это работать. Можете ли вы объяснить немного больше? – bschultz

+0

Можете ли вы поделиться кодом, который используете? – Cristian