我正在从数据库读取ListView:
private void showEvents(Cursor cursor) {
ArrayList<String[]> eventsList = new ArrayList<String[]>();
cursor.moveToFirst();
while (cursor.moveToNext()) {
String[] oneEvent = new String[3];
oneEvent[1] = cursor.getString(1);
oneEvent[2] = cursor.getString(2);
eventsList.add(oneEvent);
}
ArrayAdapter<String[]> adapter = new ArrayAdapter<String[]>(this,
android.R.layout.simple_list_item_1, eventsList);
setListAdapter(adapter);
}
然而,输出被破坏了。例如,一行是
Ljava.lang.String;@b1e01410
。当我使用DDMS从模拟器中提取数据库并查看它时,数据看起来很好,所以这是某种格式错误。请帮忙,谢谢。
答案 0 :(得分:0)
你知道Ljava.lang.String;@b1e01410
是什么吗?
基本上它是toString()
的默认输出(来自Object
),开头的L表示它是一个数组。这意味着你的问题是该行接收的数组不是单个字符串,而且它是非字符串对象,它通过toString“强制转换”它。