我正在从SQLite
数据库中检索值,我有一种方法是从数据库获取数据并以ArrayList
的泛型Hashmap
返回数据。
但是我不知道如何将数据从HashMap传递到Textview。我有2个文本视图。
这是获取数据的方法。
public ArrayList<HashMap<String, String>> Getdetails(){
ArrayList<HashMap<String, String>> userList = new ArrayList<>();
//String sem="'First'";
//try{
SQLiteDatabase db = DatabaseHelper.getInstance(this).getReadableDatabase();
String query = "SELECT * FROM tutorial WHERE name='"+item+"'";
Cursor cursor = db.rawQuery(query,null);
if(cursor.getCount()>0) {
while (cursor.moveToNext()) {
HashMap<String, String> user = new HashMap<>();
user.put("name", cursor.getString(1));
user.put("desc", cursor.getString(2));
userList.add(user);
}
}
// }
//catch (Exception e){
// Toast.makeText(this, "Error "+selected, Toast.LENGTH_SHORT).show();
//}
return userList;
}
答案 0 :(得分:0)
首先从Arraylist获取HashMap,然后从HashMap获取值。
ArrayList<HashMap<String, String>> arrDetails = Getdetails();
HashMap<String, String> hashDetails = arrDetails.get(0); // Use this index accordingly
textView1.setText(hashDetails.get("name"));
textView2.setText(hashDetails.get("desc"));
答案 1 :(得分:0)
在您的调用方法中:
ArrayList<HashMap<String, String>> details = Getdetails();
HashMap<String, String> user = details.get(0); // If it contains only one key value
nameTextView.setText(user.get("name"));
descriptionTextView.setText(user.get("desc"));
我将为“名称”和“ desc”创建最终的静态字段,并考虑使用命名约定