Как получить элемент из POJO в списке onClick()?

У меня есть POJO, в котором описывается какая-то модель (предмет?) и какой-то пользовательский адаптер.

Я устанавливаю свой адаптер для ListView, а затем в onItemClick() я хочу получить значение одной из переменных, которые я добавил в элемент.

Как я могу достичь этого?

В моем коде я делаю что-то вроде:

private List<SomeItem> items = new ArrayList();
items.add(new SomeItem(firstValueString, secondValueBitmap, thirdValueString));
SomeAdapter adapter = new SomeAdapter(this, R.layout.list_item, items);
listView.setAdapter(adapter);
listView.setOnItemClickListener(
...
@Override
public void onItemClick(){
//How to reach for example firstValueString value of currently clicked item??
}
)
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
0
0
84
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Используйте android.widget.AdapterView.OnItemClickListener:

 listView.setOnItemClickListener(new OnItemClickListener() {
      public void onItemClick(AdapterView<?> parent, View view,
          int position, long id) {
        Log.d(LOG_TAG, "itemClick: position = " + position + ", id = "
            + id);
        SomeItem item = items.get(position); // specific item
      }
    });

именно то, что мне нужно.

danyapd 07.04.2019 17:35

На основе документации Android SDK:

Implementers can call getItemAtPosition(position) if they need to access the data associated with the selected item.

Если вы полностью реализуете свой адаптер, вы можете получить такой элемент, как ниже:

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
    @Override
    public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
        Item item = (Item)parent.getItemAtPosition(position);
    }
}); 

Другие вопросы по теме