Je suis nouveau sur android programmation.Quelqu'un peut-il me donner un exemple simple montrant une coutume notification toast dans android?
Réponses
Trop de publicités?Utilisation ci-dessous le code de la coutume, des toasts, il peut être vous aider.
toast.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/toast_layout_root"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dp"
android:background="#DAAA" >
<ImageView android:id="@+id/image"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_marginRight="10dp" />
<TextView android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:textColor="#FFF" />
</LinearLayout>
MainActivity.java
LayoutInflater inflater = getLayoutInflater();
View layout = inflater.inflate(R.layout.toast_layout,
(ViewGroup) findViewById(R.id.toast_layout_root));
ImageView image = (ImageView) layout.findViewById(R.id.image);
image.setImageResource(R.drawable.android);
TextView text = (TextView) layout.findViewById(R.id.text);
text.setText("Hello! This is a custom toast!");
Toast toast = new Toast(getApplicationContext());
toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);
toast.setDuration(Toast.LENGTH_LONG);
toast.setView(layout);
toast.show();
Et découvrez ci-dessous des liens également pour coutume toast
ÉTAPE 1:
D'abord Créer une mise en page personnalisée pain grillé res/layout/custom_toast.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/custom_toast_layout_id"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#FFF"
android:orientation="horizontal"
android:padding="5dp" >
<TextView
android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:textColor="#000" />
</LinearLayout>
ÉTAPE 2: Dans le code d'Activité de l'obtenir au-dessus de la vue personnalisée et attachez-la à Toast:
// get your custom_toast.xml ayout
LayoutInflater inflater = getLayoutInflater();
View layout = inflater.inflate(R.layout.custom_toast,
(ViewGroup) findViewById(R.id.custom_toast_layout_id));
// set a message
TextView text = (TextView) layout.findViewById(R.id.text);
text.setText("Button is clicked!");
// Toast...
Toast toast = new Toast(getApplicationContext());
toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);
toast.setDuration(Toast.LENGTH_LONG);
toast.setView(layout);
toast.show();
Pour plus d'aider à voir comment nous Créer des Toasts dans Android:
http://developer.android.com/guide/topics/ui/notifiers/toasts.html
Son simple. Suffit de passer par l'android site du développeur. C'est le lien : Personnalisé ToastView.
voir le lien Ici
vous trouverez votre solution
et essayer
Créer un Toast Vue
Si un simple message texte n'est pas assez, vous pouvez créer une mise en page personnalisée pour votre notification toast. Pour créer une mise en page personnalisée, définir une Vue de mise en page, au format XML ou dans le code de votre application, et de passer de la Vue de la racine de l'objet de la setView(point de Vue) de la méthode.
Par exemple, vous pouvez créer la mise en page pour le toast visible dans la capture d'écran à droite avec le code XML suivant (enregistré en tant que toast_layout.xml):
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/toast_layout_root"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="10dp"
android:background="#DAAA"
>
<ImageView android:id="@+id/image"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_marginRight="10dp"
/>
<TextView android:id="@+id/text"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:textColor="#FFF"
/>
</LinearLayout>
Notez que l'ID de la LinearLayout élément est "toast_layout". Vous devez utiliser cet IDENTIFIANT pour gonfler la mise en page du document XML, comme illustré ici:
LayoutInflater inflater = getLayoutInflater();
View layout = inflater.inflate(R.layout.toast_layout,
(ViewGroup) findViewById(R.id.toast_layout_root));
ImageView image = (ImageView) layout.findViewById(R.id.image);
image.setImageResource(R.drawable.android);
TextView text = (TextView) layout.findViewById(R.id.text);
text.setText("Hello! This is a custom toast!");
Toast toast = new Toast(getApplicationContext());
toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);
toast.setDuration(Toast.LENGTH_LONG);
toast.setView(layout);
toast.show();
Tout d'abord, récupérer le LayoutInflater avec getLayoutInflater() (ou getSystemService()), puis gonfler à la mise en page à partir de XML à l'aide de gonfler(int, ViewGroup). Le premier paramètre est la mise en page ID de ressource et la deuxième est la racine de la Vue. Vous pouvez utiliser ce gonflés de mise en page pour trouver plus d'Afficher des objets dans la mise en page, donc maintenant de saisir et de définir le contenu de l'ImageView et TextView éléments. Enfin, créez un nouveau Toast avec du pain grillé(Contexte) et de définir certaines propriétés du toast, tels que la gravité et de la durée. Appelez ensuite setView(la Vue) et la passer à l'gonflé de mise en page. Vous pouvez maintenant afficher le toast avec votre mise en page personnalisée en appelant show().
Remarque: Ne pas utiliser le constructeur public pour un Toast à moins que vous allez définir la mise en page avec setView(point de Vue). Si vous ne disposez pas d'une mise en page personnalisée pour l'utiliser, vous devez utiliser makeText(Contexte, int, int) pour créer le Toast.
Je pense que la plupart des customtoast xml-exemples à travers l'internet sont basés sur la même source. les docs android, ce qui est très désuet à mon avis. fill_parent ne doit pas être utilisé plus. Je préfère utiliser wrap_content en combinaison avec un xml.9.png. de cette façon, vous pouvez définir la taille minimum de toastbackground tout au long de la taille de la source.
Si plus complexes, des toasts sont nécessaires, le cadre ou relative de la mise en page doit être utilisé à la place de LL.
toast.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/points_layout"
android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/background"
android:layout_gravity="center"
android:gravity="center" >
<TextView
android:id="@+id/points_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:layout_margin="15dp"
android:text="@+string/points_text"
android:textColor="@color/Green" />
</LinearLayout>
background.xml
<?xml version="1.0" encoding="utf-8"?>
<nine-patch
xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/background_96"
android:dither="true"/>
background_96 est background_96.9.png.
ce n'est pas testé très bien, astuces apprécié :)