简介:我正在尝试构建一个显示有关图书信息的Android应用程序(使用Google图书API)。我最近在应用程序中添加了firebase。 此时我可以登录或注册到应用程序,我可以搜索书籍(带有搜索视图),我已经为从查询创建的ListView中列出的每本书添加了一个按钮。我为按钮添加了功能它遵循:按钮(如果按下)应该将当前的书(在Listview中)添加到FireBase。
我的下一步是检索用户在另一项名为 CatalogActivity
的活动中添加的所有图书url(r'^(P<user_name>\w+)/$', views.your_view),
当我运行应用程序并点击 CatalogActivity 时,应用程序崩溃。
我使用了断点调试,我得出以下结论:
- 正确获取数据库实例和引用
- 正确获取所有BookObjects的快照(def your_view(request, user_name):
user = get_object_or_404(username=user_name)
context = {
'':user.info
}
return render(request, 'your_app/template.html')
)
- 正确获取第一个子快照(public class CatalogActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_catalog);
GridView catalogListView = (GridView) findViewById(R.id.CatalogGridList);
final List<BookObject> books = new ArrayList<BookObject>();
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference databaseReference = database.getReference();
databaseReference.child("books").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Iterable<DataSnapshot> children = dataSnapshot.getChildren();
for (DataSnapshot child : children) {
BookObject book = child.getValue(BookObject.class);
books.add(book);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
}
});
CatalogAdapter catalogAdapter = new CatalogAdapter(this, books);
catalogListView.setAdapter(catalogAdapter);
}
}
)(无法判断第一本书是否也添加到dataSnapshot
)
可能导致应用崩溃的原因是什么?
child
课程的要点:BookObject
崩溃日志:
books
非常感谢任何帮助。
答案 0 :(得分:2)
从
中更改Plain Old Java Object(POJO)类中的声明public String Title;
public String Subtitle;
public String Authors;
public String ImageURL;
到这个
public String title;
public String subtitle;
public String authors;
public String imageURL;
如果它不起作用,请告诉我。
答案 1 :(得分:2)
您需要做的是使用小写字母更改文件名:
public String title;
public String subtitle;
public String authors;
public String imageURL;
private String pushId;
除此之外,您还需要更改所有的定位器和吸气剂:
public String getTitle() {return title;}
public void setTitle(String title) {this.title = title;}
public String getSubtitle() {return subtitle;}
public void setSubtitle(String subtitle) {this.subtitle = subtitle;}
public String getAuthors() {return authors;}
public void setAuthors(String authors) {this.authors = authors;}
public String getImageURL() {return imageURL;}
public void setImageURL(String imageURL) {this.imageURL = imageURL;}
public String getPushId() {return pushId;}
public void setPushId(String pushId) {this.pushId = pushId;}
Cătă,这种变化肯定会解决您的问题;)