簡體   English   中英

URL文件下載的Picasso Target Null錯誤。 爪哇

[英]Picasso Target Null Error for URL file downloading. Java

我正在嘗試使用適用於Android Studio Java的Picasso API從URL下載圖像。 單擊浮動操作欄,並顯示一個警報對話框,其中包含URL中的圖像。

我嘗試了以下操作: Picasso Target不能為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)

我哪里做錯了? 我該如何解決?

做這個

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);

您必須從用於AlertDialog的布局中獲取ImageView ,因此請嘗試以下代碼:

        @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 ,但現在不會。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM