public HashMap<Long, String> getHashMap(String exec) {
HashMap<Long, String> map = new HashMap<>();
SQLiteDatabase db = this.getReadableDatabase();
Cursor cursor = db.query(TABLE_PRODUCTS, new String[]{COLUMN_ID, COLUMN_PRODUCTNAME,
COLUMN_COAST, COLUMN_INCOME}, null, null, null, null, null); // Здесь в массиве String`ов просто поменяйте столбцы
if (cursor != null && cursor.moveToFirst()) {
do {
// Как пример
long value = cursor.getLong(cursor.getColumnIndexOrThrow(exec));
String name = cursor.getString(cursor.getColumnIndexOrThrow(COLUMN_PRODUCTNAME));
map.put(value, name);
} while (cursor.moveToNext());
}
return map;
}
然后,将事件处理程序附加到 ListView,通过索引将它们从 HashMap 中拉出:
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// Вытаскиваем данные из коллекции по текущей позиции элемента ListView
...
}
});
如果你有一个数据库,那么你可以以HashMap的形式从中提取数据。
假设数据库有列 _ Id、PRODUCTNAME、COAST、INCOME
(您可以在作为方法参数提供的字符串数组中将这些列的名称更改为您自己的名称
query
。好吧,只需将 HashMap 的泛化更改为您使用的类型)您可以将它们从数据库中拉出,例如,像这样:
然后,将事件处理程序附加到 ListView,通过索引将它们从 HashMap 中拉出: