Android ListView中格式不正确的输出

时间:2014-02-22 23:47:49

标签: java android sqlite

我正在从数据库读取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从模拟器中提取数据库并查看它时,数据看起来很好,所以这是某种格式错误。请帮忙,谢谢。

1 个答案:

答案 0 :(得分:0)

你知道Ljava.lang.String;@b1e01410是什么吗?

基本上它是toString()的默认输出(来自Object),开头的L表示它是一个数组。这意味着你的问题是该行接收的数组不是单个字符串,而且它是非字符串对象,它通过toString“强制转换”它。