为什么我的Android ORM库生成这些奇怪的字符串?

时间:2013-12-13 04:00:25

标签: java android sqlite orm

我正在使用Sugar ORM来获取对象,然后将它们列在您在下面看到的ListView中。但是,Sugar ORM似乎不是将我输入的字符串列入我的数据库,而是生成某种资源标识符而不是字符串。知道这些是什么以及如何将它们变回字符串吗?

这是我的ListView代码:

    List<Book> books = Select.from(Book.class).orderBy("item").list();
    setListAdapter(new ArrayAdapter<Book>(this,  android.R.layout.simple_list_item_1, books));

My List

1 个答案:

答案 0 :(得分:4)

列表视图中填充了“Book”对象 对于每个列表项,simple_list_item正在打印Book类的toString。如果你不覆盖toString,它将打印出“Class @ somenumber”,它就是你的情况。

你可以做两件事:

覆盖book类的toString方法,以便您可以决定它显示的内容。

示例:

@Override
public String toString(){
    // assuming your book has a title (and its a string), put what you want here
    return getTitle();
}

另一个选项是为您的listitem制作自定义视图。 所以不是使用android.R.layout.simple_list_item_1而是创建自己的。在视图中,您可能有一个tekstview,您可以填写书名。这是一项更多的工作,但您也可以最大程度地控制列表项的布局。