无法在FirebaseListAdapter中显示base64已解码图像

时间:2016-05-17 08:25:00

标签: android listview firebase firebase-realtime-database

我需要帮助在我的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);

}

1 个答案:

答案 0 :(得分:1)

问题是由于我将ImageView私有onCreate作为私有变量(用于访问类中的任何方法)而导致的。哪个statusImg

相反,我把它放在这行内的方法中。

这是使用该行的非工作方式。

statusImg.setImageBitmap(decodedByte);

这会将ImageView转换为我的FirebaseListAdapter,而不再给我Null指针。

((ImageView)view.findViewById(R.id.status_img)).setImageBitmap(decodedByte);