Themen-Toastnachrichten mit dem Android SDK

Eine sehr praktische Funktion des Android UI-Kits ist die Toast-Nachrichtenklasse. Eine Toastnachricht ist der ideale Weg, um den Benutzer über das Geschehen zu informieren, ohne die Benutzererfahrung mit etwas so Aufdringlichem wie einem Dialog zu unterbrechen. Angenommen, der Benutzer hat die Schaltfläche Speichern gedrückt. Eine Toastnachricht ist der perfekte Weg, um dem Benutzer eine warme und unscharfe Note zu geben, wenn der Speichervorgang erfolgreich abgeschlossen wurde.

Das einzige Problem ist, dass die Toastnachricht normalerweise auf Geräteebene thematisiert wird. Dies bedeutet, dass die Toastnachrichten wahrscheinlich dunkelgrau und weiß sind, wenn der Benutzer vor Honeycomb eine Android-Version ausführt. In späteren Versionen von Android sind die Toastnachrichten wahrscheinlich hellblau und weiß. In beiden Fällen besteht je nach Farbschema Ihrer Android-Anwendung eine gute Chance, dass Sie einen Schandfleck bekommen.

Zum Glück gibt es Hoffnung. Die Android-Plattform ist bekannt für ihre Flexibilität und die Toastklasse ist keine Ausnahme. Dieses Tutorial zeigt Ihnen alles, was Sie wissen müssen, um Ihre eigenen Toastnachrichten zu erstellen. Sie können meinem Schritt-für-Schritt-Tutorial folgen oder das gesamte Projekt herunterladen und direkt in Eclipse importieren.

1. Erstellen Sie mit Eclipse ein neues Android-Projekt. Zielversion 1.6 oder höher des Betriebssystems. Benennen Sie die Startdatei in Main.java und das entsprechende Layout in main.xml um.

2. Da ich ein Fan von gegrilltem Käse bin, werde ich meine Toastbotschaft mit einem großen Stück Cheddar schmücken. Im Ressourcenordner habe ich ein neues Verzeichnis namens / drawable erstellt. Hier habe ich das benutzerdefinierte Bild platziert, das ich in meinen Dialogen verwenden möchte, käse.png.

3. Da ich sicherstellen möchte, dass meine benutzerdefinierte Toastnachricht nicht mit der Standardsystemnachricht verwechselt wird, erstelle ich einen leuchtend roten Verlauf, der als Hintergrund für mein Layout dient. Fügen Sie im Verzeichnis / res einen neuen Ordner hinzu und nennen Sie ihn / xml. In diesem neuen Ordner erstelle ich eine Datei mit dem Namen round_rect.xml.

round_rect.xml

 "1.0" encoding = "UTF-8" ?> 
 xmlns: android = "http://schemas.android.com/apk/res/android" 
 android: shape = "rechteck" > 
 android: startColor = "# ffff0000" 
 android: endColor = "# ff480000" 
 android: angle = "270" /> 
 android: bottomRightRadius = "15dp" 
 android: bottomLeftRadius = "15dp" 
 android: topLeftRadius = "15dp" 
 android: topRightRadius = "15dp" /> 

4. Bevor wir mit dem Schreiben von Java-Code beginnen können, müssen wir noch unsere Hauptanwendung und den benutzerdefinierten Toast auslegen. Beide Dateien werden im Verzeichnis / res / layout abgelegt.

custom_toast.xml

 "1.0" encoding = "utf-8" ?> 
 "http://schemas.android.com/apk/res/android" 
 android: id = "@ + id / toast_layout" 
 android: orientierung = "vertikal" 
 android: layout_width = "wrap_content" 
 android: layout_height = "wrap_content" 
 android: background = "@ xml / round_rect" 
 android: layout_margin = "25dip" > 
 android: layout_margin = "5dip" 
 android: orientierung = "horizontal" 
 android: layout_width = "wrap_content" 
 android: layout_height = "wrap_content" > 
 android: layout_width = "wrap_content" 
 android: layout_height = "wrap_content" 
 android: src = "@ drawable /käse" /> 
 android: orientierung = "vertikal" 
 android: layout_width = "fill_parent" 
 android: layout_height = "fill_parent" 
 android: schwerkraft = "zentrum" > 
 android: paddingLeft = "10dip" 
 android: layout_width = "fill_parent" 
 android: layout_height = "fill_parent" 
 android: id = "@ + id / toast_text_1" 
 android: textColor = "#ffffff" 
 android: textSize = "14sp" 
 android: textStyle = "fett" 
 android: schwerkraft = "zentrum" /> 

main.xml

 "http://schemas.android.com/apk/res/android" 
 android: layout_width = "fill_parent" 
 android: layout_height = "fill_parent" 
 android: orientierung = "vertikal" 
 android: background = "# 000000" > 
 android: layout_width = "wrap_content" 
 android: layout_height = "wrap_content" 
 android: textSize = "16sp" 
 android: textColor = "#ffffff" 
 android: text = "Benutzerdefinierte Toast-Demonstration" 
 android: layout_gravity = "center" 
 android: layout_margin = "15dip" /> 
 android: id = "@ + id / plain_toast" 
 android: layout_width = "fill_parent" 
 android: layout_height = "wrap_content" 
 android: text = "Einfacher Toast" 
 android: layout_gravity = "center" 
 android: layout_margin = "10dip" /> 
 android: id = "@ + id / cheesy_toast" 
 android: layout_width = "fill_parent" 
 android: layout_height = "wrap_content" 
 android: text = "Cheesy Toast" 
 android: layout_gravity = "center" 
 android: layout_margin = "10dip" /> 

5. Jetzt ist es Zeit, die Datei Main.java zu codieren. Die Methode on create nutzt die Fähigkeit von Java, Inline-Funktionen zu erstellen, die für den Aufruf unserer Methode make toast verantwortlich sind. Abhängig vom übergebenen Parameter zeigt die Methode entweder einen Standard-Toast an oder erstellt einen neuen und wendet unser Thema darauf an.

Main.java

 Paket com.authorwjf.cheese_n_toast; 
 import android.os.Bundle; 
 android.app.Activity importieren ; 
 android.view.LayoutInflater importieren ; 
 android.view.Menu importieren ; 
 android.view.View importieren ; 
 android.view.View.OnClickListener importieren ; 
 android.view.ViewGroup importieren ; 
 android.widget.TextView importieren ; 
 android.widget.Toast importieren ; 
 öffentliche Klasse Main erweitert Aktivität { 
 final static int PLAIN = 01; 
 final static int CUSTOM = 02; 
 @Override 
 public void onCreate (Bundle savedInstanceState) { 
 super .onCreate (savedInstanceState); 
 setContentView (R.layout. main ); 
 findViewById (R.id. plain_toast ) .setOnClickListener ( neuer OnClickListener () { 
 @Override 
 public void onClick (View v) { 
 makeToast ( PLAIN ); 
 }} 
 }); 
 findViewById (R.id. cheesy_toast ) .setOnClickListener ( neuer OnClickListener () { 
 @Override 
 public void onClick (View v) { 
 makeToast ( CUSTOM ); 
 }} 
 }); 
 }} 
 private void makeToast ( int type) { 
 if (type == PLAIN ) { 
 Toast. makeText (getBaseContext (), "Dies ist eine Standard- Toastnachricht .", Toast. LENGTH_SHORT ) .show (); 
 } else { 
 LayoutInflater inflater = getLayoutInflater (); 
 View layout = inflater.inflate (R.layout. Custom_toast, (ViewGroup) findViewById (R.id. toast_layout )); 
 ((TextView) layout.findViewById (R.id. Toast_text_1 )). SetText ("Dies ist eine benutzerdefinierte Toastnachricht."); 
 Toast Toast = neuer Toast (getBaseContext ()); 
 toast.setDuration (Toast. LENGTH_SHORT ); 
 toast.setView (Layout); 
 toast.show (); 
 }} 
 }} 
 }} 
Wenn Sie die Anwendung auf Ihrem Gerät oder einem Emulator ausprobieren, werden Sie feststellen, dass der Unterschied zwischen einer Standard-Toastnachricht ( Abbildung A ) und einer benutzerdefinierten Nachricht ( Abbildung B ) sehr dramatisch sein kann! Abbildung A.

Abbildung B.

Eine Randnotiz: Ich werde häufig gefragt, wie eine benutzerdefinierte Anzeigezeit für die Toastnachricht festgelegt werden soll. Ohne guten Grund bietet das UI-Framework für Android diese Option derzeit nicht an. Hoffentlich wird eine zukünftige Version des Android SDK dieses Manko beheben.

© Copyright 2021 | mobilegn.com