乡亲们!我写了一个Book类,其中包含Chapter对象(一对多关系)。如文档中所述,它实现方法public List章()。这是Book.java
@Table(name = "Books")
public class Book extends Model implements Serializable {
private static final long serialVersionUID = 1L;
@Column(name = "Name", unique = true, onUniqueConflict = Column.ConflictAction.IGNORE)
public String name;
@Column(name = "Sort")
public int sort;
public Book() {
super();
}
public Book(String name, int sort) {
super();
this.name = name;
this.sort = sort;
}
public List<Chapter> chapters() {
return getMany(Chapter.class, "Book");
}
@Override
public String toString() {
return name;
}
}
在主要活动上,我可以成功获取Chapter对象。但是,我必须将书对象传递给另一个活动,该活动具有一个片段,尽管我获得了该对象的陈述属性(字符串名称和int sort),但在我调用Chapters()时却引发了异常:
Bundle bundle = getIntent().getExtras();
Book book = (Book) bundle.getSerializable("BOOK");
// This line is executed successfully
Log.d("TAGGED", "Recovered book: " + book.name + " has " + book.sort + " as its sort");
// This is the line that throws an exception
ArrayList<Chapter> chapters = book.chapters();
引发的异常如下:
05-06 15:21:59.701: E/AndroidRuntime(9647): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.hanovit.libraria/com.hanovit.libraria.chapter.ChapterActivity}: java.lang.NullPointerException
05-06 15:21:59.701: E/AndroidRuntime(9647): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2180)
05-06 15:21:59.701: E/AndroidRuntime(9647): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2230)
05-06 15:21:59.701: E/AndroidRuntime(9647): Caused by: java.lang.NullPointerException
05-06 15:21:59.701: E/AndroidRuntime(9647): at com.activeandroid.query.From.getArguments(From.java:207)
05-06 15:21:59.701: E/AndroidRuntime(9647): at com.activeandroid.query.From.execute(From.java:183)
05-06 15:21:59.701: E/AndroidRuntime(9647): at com.activeandroid.Model.getMany(Model.java:266)
任何想法有什么问题吗?谢谢!!!
最佳答案
在Github中提交了一个问题,现已修复(https://github.com/melvin7/ActiveAndroid)
另一方面,仅将列的ID放入Extras捆绑包中即可。然后我可以使用Model.load(Book.class,id)获得完整的对象
关于android - ActiveAndroid模型套件附加功能异常,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16401975/