我在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 ;
}
在我的Activity中,我是如何从数据库中获取它并进行更改以允许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,但这不起作用。
答案 0 :(得分:2)
因为“s”是一个HashMap并且通过打印它来打印出你的Map的toString()。
而是尝试使用{listString += s.get("salesNotes") + "\n";}
(根据salesNotes的键获取值)
P.S。人们想知道为什么你使用单个条目HashMap作为ArrayList中的元素? HashMap中是否有其他条目未包含在此问题中?
答案 1 :(得分:1)
尝试StringUtils.substringAfter,StringUtils.substringBetween
s = "Sample=Apple";
StringUtils.substringAfter(s, "="); // if it is not having {}
s = "{Sample=Apple}";
StringUtils.substringBetween(s, "=", "}"); // if it having {}