HashMap ArrayList到TextView

时间:2018-11-26 10:23:05

标签: android arraylist android-sqlite

我正在从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;
}

2 个答案:

答案 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”创建最终的静态字段,并考虑使用命名约定