我需要帮助在我的FirebaseListAdapter中显示base64解码图像。
这是我使用的代码FirebaseListAdapter,但它崩溃了我的应用,我不知道哪种方式可以正确使用。
我的所有变量都是正确的,它正确地检索了base64字符串。
sAdapter = new FirebaseListAdapter<Status>(this, Status.class, R.layout.user_status_list, sRef) {
@Override
protected void populateView(View view, Status status, int position) {
((TextView)view.findViewById(R.id.status_txt)).setText(status.getStatusTxt());
((TextView)view.findViewById(R.id.username_txt)).setText(status.getAuthorUsername());
byte[] decodedString = Base64.decode(status.getAuthorImg(), Base64.DEFAULT);
Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);
statusImg.setImageBitmap(decodedByte);
}
};
statusList.setAdapter(sAdapter);
}
答案 0 :(得分:1)
问题是由于我将ImageView
私有onCreate
作为私有变量(用于访问类中的任何方法)而导致的。哪个statusImg
。
相反,我把它放在这行内的方法中。
这是使用该行的非工作方式。
statusImg.setImageBitmap(decodedByte);
这会将ImageView
转换为我的FirebaseListAdapter,而不再给我Null指针。
((ImageView)view.findViewById(R.id.status_img)).setImageBitmap(decodedByte);