Java 毕加索“;目标不能为空";(使用Firebase数据库)
我制作了一个带有链接的Firebase数据库(这些是指向我的存储的带有一些图像的链接) 存储: 我尝试连接到我的数据库,并获得第1页的值,例如按下按钮Java 毕加索“;目标不能为空";(使用Firebase数据库),java,android,firebase,picasso,Java,Android,Firebase,Picasso,我制作了一个带有链接的Firebase数据库(这些是指向我的存储的带有一些图像的链接) 存储: 我尝试连接到我的数据库,并获得第1页的值,例如按下按钮 private DatabaseReference mRef; button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) {
private DatabaseReference mRef;
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
mRef = FirebaseDatabase.getInstance().getReference().child("Chapters").child("Chapter 1").child("Page_1");
mRef.addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot dataSnapshot) {
String value = String.valueOf(dataSnapshot.getValue());
textView.setText(value);
Picasso.get().load(value).into(page_holder);
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
});
但当我运行我的应用程序时,有一个例外,毕加索的台词说:
目标不能为空
如果我删除毕加索,只将第_1页的值放入textView,它会显示正确的值(因此这意味着我实际得到的值不是空值)
(对于黑色模式,我很抱歉,我认为这些行可能包含一些重要的内容,比如数据库的名称(很可能不是,但我是这样的noob))
PS
我注意到的一件事是,当我将页面_1的值输入TextView时,有一点延迟。所以我猜毕加索是想在它被载入之前得到“目标”。
我试着做一些像棋盘格的东西
String value_from_database = textView.getText().toString();
if (TextUtils.isEmpty(value_from_database)){
textView.setText("Image is loading|Doesn't exist");
}
else {
Picasso.get().load(value_from_database).into(page_holder);
}
但我还是失败了。毕加索也出现了同样的异常/错误
请告诉我如何解决此问题?这意味着页眉为空。如错误所示: “目标不能为空。” 这意味着在您的情况下,目标是
页面持有者
,即null
。它与用于从数据库获取数据的代码无关,这是正确的
要解决此问题,请确保初始化
page\u holder
对象,使其不能为null
,并且可以正确使用Picasso
。是否已初始化page\u holder
图像视图看起来page\u holder
未初始化。看,这是我搜索时得到的第一个结果。是的,它很有用,非常感谢。我在布局中的一些名字确实犯了一个错误。