0

sqlite からリストのすべての名前を出力する TextView に ArrayList があります。値を印刷しています

{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 であり、それを出力することで、マップの toString() を出力しているためです。

代わりに使用してみてください{listString += s.get("salesNotes") + "\n";}

(salesNotes のキーに基づいて値を取得)

PS 1 は、単一のエントリ 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 に答える