2016-08-23 1 views
0

Android Studio Java用Picasso APIを使用してURLから画像をダウンロードしようとしています。フローティングアクションバーがクリックされ、アラートダイアログがURLの画像と共に表示されます。Picasso Target Null URLファイルのダウンロードでエラーが発生しました。 Java

私は以下を試しました: Picasso Target must not be null error しかし、私のエラーはまだ発生しています。

これは私が現在使用しているコードです:ここでは

 FloatingActionButton FabViewImage = (FloatingActionButton) findViewById(R.id.fabPicture); 
    if (FabViewImage != null) 
     FabViewImage.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       Dialog settingsDialog = new Dialog(TabEmpOrder.this); 
       settingsDialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE); 
       settingsDialog.setContentView(getLayoutInflater().inflate(R.layout.order_detail_image_view, null)); 
       Context context = settingsDialog.getContext(); 
       settingsDialog.show(); 

       ImageView imgView = (ImageView) findViewById(R.id.imgOrderDetails); 
       Picasso.with(context).load("http://i.imgur.com/Tnendik.png").into(imgView); 
      } 
     }); 

はそれが私が間違って行くのです

08-23 09:54:06.351 25488-25488/dura_art.bigbyte E/AndroidRuntime: FATAL EXCEPTION: main 
Process: dura_art.bigbyte, PID: 25488 
java.lang.IllegalArgumentException: Target must not be null. 
at com.squareup.picasso.RequestCreator.into(RequestCreator.java:618) 
at com.squareup.picasso.RequestCreator.into(RequestCreator.java:601) 
at dura_art.bigbyte.TabEmpOrder$1.onClick(TabEmpOrder.java:99)//This is where it breaks 
at android.view.View.performClick(View.java:5697) 
at android.view.View$PerformClick.run(View.java:22526) 
at android.os.Handler.handleCallback(Handler.java:739) 
at android.os.Handler.dispatchMessage(Handler.java:95) 
at android.os.Looper.loop(Looper.java:158) 
at android.app.ActivityThread.main(ActivityThread.java:7224) 
at java.lang.reflect.Method.invoke(Native Method) 
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1230) 
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1120) 

を表示するエラーメッセージのですか?それをどうやって修正することができますか?

+0

onCreateでImageViewを初期化し、R.id.imgOrderDetailsが実際に同じビューを参照していることを確認します。 –

+0

あなたの画像はアラートダイアログの右側に表示されますか?イメージビューはダイアログレイアウトの一部ですか? – himanshu1496

答えて

0

あなたはAlertDialogのために使用するレイアウトからImageViewを取得する必要があり、この

View v = getLayoutInflater().inflate(R.layout.order_detail_image_view, null); 
settingsDialog.setContentView(v); 
      Context context = settingsDialog.getContext(); 
      settingsDialog.show(); 
ImageView imgView = (ImageView) v.findViewById(R.id.imgOrderDetails); 
      Picasso.with(context).load("http://i.imgur.com/Tnendik.png").into(imgView); 
0

ので、コードの下にしようとしてください:

 @Override 
     public void onClick(View view) { 
      Dialog settingsDialog = new Dialog(TabEmpOrder.this); 
      settingsDialog.getWindow().requestFeature(Window.FEATURE_NO_TITLE); 
      View layout = getLayoutInflater().inflate(R.layout.order_detail_image_view; 
      ImageView imgView = (ImageView) layout.findViewById(R.id.imgOrderDetails); 

      settingsDialog.setContentView(layout, null)); 
      Context context = settingsDialog.getContext(); 
      settingsDialog.show(); 


      Picasso.with(context).load("http://i.imgur.com/Tnendik.png").into(imgView); 
     } 

ここpicassoに渡されたとき、あなたのImageViewnullだったが、今では勝ちました't be。

関連する問題