2013-05-06 50 views
2

伙计们!我写了一个Book类,它有章节对象(一对多关系)。它实现了公共列表章节()的方法,如文档中所述。这是Book.javaActiveAndroid模型捆绑额外异常

@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; 
} 
} 

在主要活动上,我可以成功地获得章节对象。但是,我必须将书对象传递给另一个具有片段的活动,尽管我获得了该对象的声明属性(String name和int sort),但在调用章节()时抛出异常:

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) 

任何想法有什么不好?谢谢!!!

回答

2

在Github上提交一个问题,现在是固定的(https://github.com/melvin7/ActiveAndroid

在另一方面,投入的额外捆绑只有列的ID也有效。然后我可以用

Model.load(Book.class, id)