Андроид SQL . Обработать клик в ListView с получением данных из SQL
Всем привет!
Задача такова , получить данные из готовой SQL базы и вывести в ListView и затем при клике на каком либо из пунктов списка получить данные из второй таблицы по id.
Данные из таблицы я получил но как теперь обработать клик ?
Вот так я получаю данные:
//Список клиентов
ArrayList<HashMap<String, Object>> clients = new ArrayList<HashMap<String, Object>>();
//Список параметров конкретного клиента
HashMap<String, Object> client;
//Отправляем запрос в БД
Cursor cursor = mDb.rawQuery("SELECT * FROM clients", null);
cursor.moveToFirst();
//Пробегаем по всем клиентам
while (!cursor.isAfterLast()) {
client = new HashMap<String, Object>();
//Заполняем клиента
client.put("name", cursor.getString(1));
client.put("age", cursor.getString(2));
//Закидываем клиента в список клиентов
clients.add(client);
//Переходим к следующему клиенту
cursor.moveToNext();
}
cursor.close();
//Какие параметры клиента мы будем отображать в соответствующих
//элементах из разметки adapter_item.xml
String[] from = {"name", "age"};
int[] to = {R.id.textView, R.id.textView2};
//Создаем адаптер
SimpleAdapter adapter = new SimpleAdapter(this, clients, R.layout.adapter_item, from, to);
ListView listView = (ListView) findViewById(R.id.listView);
listView.setAdapter(adapter);
Ответы (1 шт):
Автор решения: Alexander Chernin
→ Ссылка
Нужно создать слушателя на клик по элементу в ListView:
listView.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> adapterView, View view,
int position, long id) {
// Получаем кликнутый элемент списка из адаптера
Log.v("Client item:", adapterView.getAdapter().getItem(position).toString());
}
});
Или через лямбду:
listView.setOnItemClickListener((AdapterView<?> adapterView, View view,
int position, long id) -> {
Log.v("Client item:", adapterView.getAdapter().getItem(position).toString());
}
});