我正在开发一个android项目,我使用firebase作为我的后端。我已将数据库中的图像存储为url,并尝试使用Picasso library在应用中获取图像。但我无法检索图像表单数据库。以下是我的代码。
我用来获取数据的片段类:
public class McaFirstSemSylabus extends Fragment {
public ImageView mcafirstsemsylbausimag;
Syllabus sl;
DatabaseReference loadmcafirstsylabus;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View rootView = inflater.inflate(R.layout.activity_mca_first_sem_sylabus, container, false);
loadmcafirstsylabus = FirebaseDatabase.getInstance().getReference().child("Syllabus").child("McaSyllabus").child("Firstsem");
mcafirstsemsylbausimag = (ImageView) rootView.findViewById(R.id.mcasylabus_img);
String img = sl.getImg();
Picasso.with(getActivity().getApplicationContext()).load(img).into(mcafirstsemsylbausimag);
return rootView;
}
}
下面是POJO类,它由getter和setter组成:
public class Syllabus {
private String img;
public String getImg() {
return img;
}
public void setImg(String img) {
this.img = img;
}
public Syllabus(){
}
public Syllabus(String image) {
this.img = image;
}
}
答案 0 :(得分:1)
那是因为你的教学大纲对象是空的! 您必须将ValueEventListener赋予您存储在该特定子项中的对象
loadmcafirstsylabus.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
//this retrives the java object you saved in that particular child
sl = dataSnapshot.getValue(Syllabus.class);
String img = sl.getImg();
//rest of your code
}