0

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

{saleNotes=apples} 
{saleNotes=oranges} 

等在我的 TextView 中。我希望我的 TextView 看起来像这样。

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=} 之外,这工作正常。我试图通过创建 String x={saleNotes=} 来删除它,然后尝试从 saleList1 中删除 x ,但这没有用。

4

2 回答 2

2

因为“s”是一个 HashMap 并且通过将其打印出来,您将打印出 Map 的 toString()。

而是尝试使用{listString += s.get("salesNotes") + "\n";}

(根据salesNotes的key取值)

PS 想知道为什么您使用单个条目 HashMap 作为 ArrayList 中的元素?HashMap 中是否还有其他条目未包含在此问题中?

于 2013-09-04T03:13:28.920 回答
1

尝试 StringUtils.substringAfterStringUtils.substringBetween

s  = "Sample=Apple";
StringUtils.substringAfter(s, "="); // if it is not having {}

s  = "{Sample=Apple}";
StringUtils.substringBetween(s, "=", "}"); // if it having {}
于 2013-09-04T03:05:33.823 回答