有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

JavaSQLite查询返回列名和字符串

我在TextView中有一个ArrayList,它从sqlite打印出我列表中的所有名称。 它正在打印值

{saleNotes=apples} 
{saleNotes=oranges} 

在我的文本视图中。我希望我的文本视图看起来像这样

apples
oranges

这是我的数据库信息

public ArrayList<HashMap<String, String>> getAllsalesnames1() {
        ArrayList<HashMap<String, String>> wordList2;

        wordList2 = new ArrayList<HashMap<String, String>>();
        String selectQuery2 = "SELECT DISTINCT salesNotes FROM QUICK";
        SQLiteDatabase database = this.getWritableDatabase();
        Cursor cursor2 = database.rawQuery(selectQuery2, null);
        if (cursor2.moveToFirst()) {
        do {
        HashMap<String, String> map2 = new HashMap<String, String>();
        map2.put("salesNotes", cursor2.getString(0));
        wordList2.add(map2);
        }    
                while (cursor2.moveToNext());
        }
        database.close();
        return wordList2 ;
    }

在我的活动中,我是如何从数据库中获取它并进行更改以允许ArrayList进入TextView的

 ArrayList<HashMap<String, String>> saleList1 =  controller.getAllsalesnames1();
    if(saleList1.size()!=0) {
    String listString = "";
    for (HashMap<String, String> s : saleList1)
    {listString += s + "\n";}
    System.out.println(listString);
    saleNotes.setText(listString);}

你知道我做错了什么吗?除了不需要的{saleNotes=}之外,这可以正常工作。我试图通过创建字符串x={saleNotes=}来删除它,然后试图从saleList1中删除x,但没有成功


共 (2) 个答案

  1. # 1 楼答案

    因为“s”是一个HashMap,打印出来就是打印出映射的toString()

    相反,尝试使用{listString += s.get("salesNotes") + "\n";}

    (根据salesNotes的键获取值)

    另外,有人想知道为什么要在ArrayList中使用单条目HashMap作为元素?HashMap中是否有其他条目不包括在这个问题中