Gibt es eine Möglichkeit, das Symbol, das in einem standardmäßigen alertDialog-Feld angezeigt wird, dynamisch festzulegen, ohne dass ein benutzerdefiniertes erstellt werden muss? Zum Beispiel möchte ich für den folgenden alertDialog die Methode setIcon() verwenden, um das Bild anzuzeigen, das ich unter Verwendung einer uri-Variablen mit einem darin gespeicherten Pfad zur Verfügung stelle.Dynamische Verwendung von setIcon() auf Standard alertDialogs?
private void showProductInfo(){
MyProduct myProduct= (MyProduct) myProductGoldenRetriever();
final AlertDialog alertDialog = new AlertDialog.Builder(this).create();
alertDialog.setTitle("Product Information");
alertDialog.setMessage(myProduct.getMyProductInfo());
alertDialog.setButton("Back", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
showPrompt();
}
});
alertDialog.setIcon(R.drawable.default_img);//<--Here Need to Provide a different image each time
alertDialog.show();
}//endOfShowProductInfo
Ist das irgendwie möglich oder muss ich einen benutzerdefinierten alertDialog mit einer geeigneten .xml-Layout-Datei erstellen?
Sie richtig verstanden, und Ihr Vorschlag scheint sehr vielversprechend. Aber wenn ich es auf verschiedene Arten versucht habe, konnte ich es nicht beheben. Zum Beispiel habe ich versucht BitmapDrawable icon = new BitmapDrawble (res, "R.drawable.default_img"); für ein IMG in meinem zeichnenden Verzeichnis. Dann habe ich versucht einen vollständigen Pfad zu einem Bild wie: "/Users/Admin/Desktop/default_img.png" nicht funktioniert entweder:/ – nifo
Wenn Ihre Dateien bereits in Ihrem Zeichnungsordner sind, ändern Sie einfach default_img auf das gewünschte Symbol. Und in Ihrer MyProduct-Klasse verwenden Sie anstelle von setUri und getUri einfach ein int, um eine Ressourcen-ID zu speichern, z. setResourceId (R.drawable.image1). Dann benutze 'setIcon (myProduct.getResourceId())' ;. In Ihrem zweiten Beispiel versuchen Sie, ein Bild von Ihrem PC zu ziehen. Du kannst das nicht tun. Das ist sowieso kein vollständiger Pfad, ein vollständiger Pfad wäre etwa C: /Users/Admin/Desktop/default_img.png. – kcoppock
Ich bleibe bei der Taktik, die Sie gerade erwähnt haben. Was das zweite Beispiel betrifft, verwende ich einen Mac :) Vielen Dank für Ihre Zeit und Ihr Interesse. – nifo