2017-03-18 4 views
0

Ich möchte einen AlertDialog mit einem Bild anzeigen. Das Bild kann sich jedoch je nach Umständen ändern.Android - Warnungsdialog mit veränderbarem Bild

Dies ist der Code, den ich für den Alertdialog bin mit:

AlertDialog.Builder alertadd = new AlertDialog.Builder(wheel.this); 
        LayoutInflater factory = LayoutInflater.from(wheel.this); 
        final View view = factory.inflate(R.layout.alert, null); 
        alertadd.setView(view); 
        alertadd.setTitle("Alert Dialog Title"); 
        alertadd.setNeutralButton("OK", new DialogInterface.OnClickListener() { 
         public void onClick(DialogInterface dlg, int sumthin) { 

         } 
        }); 

        alertadd.show(); 

Und das ist der alert.xml:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 


    <ImageView 
     android:id="@+id/dialog_imageview" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:src="@drawable/image" 
     android:paddingLeft="5dp" 
     android:paddingRight="5dp"/> 

</LinearLayout> 

Gibt es eine Möglichkeit, um programmatisch die Imageview innerhalb der XML-Zugriff Datei, damit ich das Bild ändern kann? Oder gibt es einen besseren Weg, das zu tun?

Antwort

0

Sie können eine Referenz von ImageView erhalten, indem findViewById auf Ihrem view aufrufen und dann setImageResource auf ihn nennen:

LayoutInflater factory = LayoutInflater.from(wheel.this); 
final View view = factory.inflate(R.layout.alert, null); 

// change the ImageView image source 
final ImageView dialogImageView = (ImageView) view.findViewById(R.id.dialog_imageview); 
dialogImageView.setImageResource(R.drawable.your_image);  

alertadd.setView(view); 
alertadd.setTitle("Alert Dialog Title"); 
alertadd.setNeutralButton("OK", new DialogInterface.OnClickListener() { 
public void onClick(DialogInterface dlg, int sumthin) { 

     } 
    }); 

alertadd.show(); 
+0

Thank you! Es funktionierte. –

Verwandte Themen