2017-01-24 6 views
0

Ich habe eine ListView, die Liste der Bilder anzeigt. Wenn ich auf ein Bild in diesem ListView klicke, möchte ich das Bild in AlertDialog anzeigen.Wie setze ich ein Bild in AlertDialog?

Mit dem folgenden Code bin ich in der Lage, Text TextView in einem AletDialog zu erhalten und anzuzeigen. Aber ich weiß nicht, wie man ein Bild in einem AlertDialog anzeigt.

Ich bezog viele Quellen. Aber nichts half.

listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
       @Override 
       public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 

        TextView c = (TextView) view.findViewById(R.id.textViewname); 
        String value = c.getText().toString(); 

        ImageView i = (ImageView) view.findViewById(R.id.imageView_temp); 

        new AlertDialog.Builder(uploadpage.this). 
          setTitle("title"). 
          setMessage(value). 
          show(); 

        dialog.show(); 
       } 
      }); 

     } 

Meine Frage ist, wie (innen AlertDialog) angezeigt werden, die bestimmte Bild eines ListVIew wenn darauf geklickt wird? Ich möchte das Bild oder Objekt anzeigen, auf das geklickt wird.

EDIT

01-24 14:31:26.504 17180-17180/com.example.prakash.pix91 E/AndroidRuntime: FATAL EXCEPTION: main 
                      Process: com.example.prakash.pix91, PID: 17180 
                      java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.res.Resources$Theme android.content.Context.getTheme()' on a null object reference 
                       at android.support.v7.app.AlertDialog.resolveDialogTheme(AlertDialog.java:108) 
                       at android.support.v7.app.AlertDialog$Builder.<init>(AlertDialog.java:285) 
                       at com.example.prakash.pix91.uploadpage$6.onItemClick(uploadpage.java:507) 
                       at android.widget.AdapterView.performItemClick(AdapterView.java:310) 
                       at android.widget.AbsListView.performItemClick(AbsListView.java:1145) 
                       at android.widget.AbsListView$PerformClick.run(AbsListView.java:3073) 
                       at android.widget.AbsListView$3.run(AbsListView.java:3910) 
                       at android.os.Handler.handleCallback(Handler.java:746) 
                       at android.os.Handler.dispatchMessage(Handler.java:95) 
                       at android.os.Looper.loop(Looper.java:148) 
                       at android.app.ActivityThread.main(ActivityThread.java:5443) 
                       at java.lang.reflect.Method.invoke(Native Method) 
                       at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:728) 
                       at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618) 
+1

benutzerdefinierte Ansicht im Dialogfeld hinzufügen. –

+0

Sie können ein benutzerdefiniertes Layout erstellen, nehmen Sie einen Verweis von hier: https://developer.android.com/guide/topics/ui/dialogs.html –

+0

Bitte versuchen Sie unten beantworten es wird Ihr Problem lösen –

Antwort

2

Erstellen einer Layoutdatei für Ihr Bild und dies für Ihre Warnung Dialog

AlertDialog.Builder alertdialog = new AlertDialog.Builder(getActivity()); 
    LayoutInflater inflaterr = (LayoutInflater)getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     View viewtemplelayout= inflaterr.inflate(R.layout.imagefile, null); 
     ImageView i = (ImageView) viewtemplelayout.findViewById(R.id.imageView_temp);//and set image to image view 

     alertdialog.setView(viewtemplelayout);//add your view to alert dilaog 
     alertdialog.show() 
+0

danke für die Antwort bekomme eine NullPointerException. – user7357013

+0

wo Sie null Zeiger Ausnahme –

+0

erhalten, während Sie auf das Element in der Listenansicht – user7357013

0

Ihre Alertdialog Layout sollte eine Image umfassen das Bild anzuzeigen. Wenn Sie Ihren Dialog instanziieren, übergeben Sie ihm die Bildansicht aus der ListView.

Das Bild aus der ListView extrahieren sollte einfach genug sein. Wenn Sie nur das Bild anzeigen müssen, sollte der obige Code Sie starten. Wenn Sie mehr anzeigen möchten, werfen Sie einen Blick auf die offizielle Anleitung zum Erstellen benutzerdefinierter Dialoge.

0
You should create your custom layout like this. 

AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(this); 
LayoutInflater inflater = this.getLayoutInflater(); 
View dialogView = inflater.inflate(R.layout.your_custom_layout, null); 
dialogBuilder.setView(dialogView); 

ImageView imageview= (ImageView) dialogView.findViewById(R.id.edittext); 
imageview.setImageResource(R.id.image1); 
AlertDialog alertDialog = dialogBuilder.create(); 
alertDialog.show(); 

That's it. 
Verwandte Themen