2016-05-17 100 views
0

我需要在我的FirebaseListAdapter中顯示base64解碼圖像的幫助。無法在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

添加logcat的輸出,所以我們可以看到失事的細節 – Shubhank

+0

肯定的是,考慮幫助我感謝... http://i.stack.imgur.com/LTRCl.png –

+0

顯示在行HomeActivity空指針.92。你需要告訴那行 – Shubhank

回答

1

因爲我是私下onCreate鑄造ImageView作爲私有變量(以訪問類中的任何方法)的問題引起的。其中statusImg是。

所以相反,我鑄造它在該行內的方法。

這是使用該行的非工作方式。

statusImg.setImageBitmap(decodedByte); 

這反而會施放ImageView我FirebaseListAdapter內,並且不再給我空指針。

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