Personnalisé toast sur Android: un exemple simple
Je suis nouveau sur Android programmation. Qu'est-ce que d'un exemple simple montrant une coutume notification toast sur Android?
- qu'entendez-vous par la coutume toast? qu'essayez-vous de les montrer?
- Ce n'est pas la vraie question. Vous devriez essayer de lire les docs sur développeur.android
- J'ai une boîte de message personnalisée. Si vous pouvez le personnaliser et ajouter une minuterie et de changer son apparence, je poste pour vous. Pouvez-vous?
- Ici vous pouvez trouver un exemple de base de la "Coutume Toast" stackoverflow.com/questions/3500197/...
Vous devez vous connecter pour publier un commentaire.
Utiliser le code ci-dessous d'un Toast. Il peut vous aider.
toast.xml
MainActivity.java
Et vérifiez les liens ci-dessous également pour un Toast.
Personnalisé Toast avec Horloge Analogique
YouTube: la Création d'un Custom Toast Avec le Bouton dans Android Studio
Un toast est pour montrer les messages pour de courts intervalles de temps; Donc, selon ma compréhension, si vous souhaitez le personnaliser avec l'ajout d'une image et de changer la taille, la couleur du texte du message. Si c'est tout, vous voulez faire, alors il n'est pas nécessaire de faire une mise en page distincte et de la gonfler le pain grillé instance.
La valeur par défaut Toast du point de vue contient une
TextView
pour montrer les messages sur elle. Donc, si nous avons la ressource de référence id de l'TextView
, on peut jouer avec elle. Donc, voici ce que pouvez-vous faire pour y parvenir:Dans le code ci-dessus vous pouvez voir, vous pouvez ajouter l'image à la TextView via
setCompoundDrawablesWithIntrinsicBounds(int left, int top, int right, int bottom)
selon la position par rapport à TextView vous le souhaitez.Mise à jour:
Ont écrit un constructeur de la classe afin de simplifier le but mentionné ci-dessus, Voici le lien:
https://gist.github.com/TheLittleNaruto/6fc8f6a2b0d0583a240bd78313ba83bc
Vérifier la
HowToUse.kt
dans le lien ci-dessus.De sortie:
TextView
devrait être là, juste pour être sûr et d'un chèque, je veux dire une valeur null ou une vérification de type. Juste au cas où, google décide de modifier l'id ou d'affichage pour l'affichage de texte en Toast de classe. De toute façon... +1ÉTAPE 1:
D'abord créer un modèle personnalisé à toast en
res/layout/custom_toast.xml
:ÉTAPE 2: Dans le code d'Activité, d'obtenir au-dessus de la vue personnalisée et attachez-la à Toast:
Pour plus d'aider à voir comment nous Créer des Toasts dans Android:
http://developer.android.com/guide/topics/ui/notifiers/toasts.html
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):
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:
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.
C'est ce que j'ai utilisé
AllMethodsInOne.java
YourFile.java
Tout en appelant simplement écrire ci-dessous.
Je pense que la plupart des customtoast xml-exemples à travers l'Internet sont basés sur la même source.
Android documentation, ce qui est très désuet à mon avis. fill_parent ne devrait plus être utilisé. Je préfère utiliser wrap_content en combinaison avec un xml.9.png. De cette façon, vous pouvez définir la taille minimale de toastbackground tout au long de la taille de la source fournie.
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
background.xml
background_96 est background_96.9.png.
Ce n'est pas testé très bien, et des conseils sont appréciés 🙂
Vous pouvez télécharger le code ici.
Étape 1:
Étape 2:
Étape 3:
Mise en page personnalisée pour le toast,
custom_toast.xml
:Et la méthode en Java (il suffit de passer au toast message à cette méthode):
Code pour MainActivity.java fichier.
Code pour activity_main.xml fichier de mise en page.
Code pour toast_background_color.xml fichier de présentation créé en res->mise en page du dossier.
//Personnalisé toast de classe où vous pouvez montrer la coutume ou par défaut toast comme souhaité)
Façon Simple de Personnaliser le Toast,
Pour éviter les problèmes avec layout_* params de ne pas être correctement utilisé, vous devez assurez-vous que lorsque vous gonflez votre mise en page personnalisée que vous spécifiez correcte, ViewGroup parent.
De nombreux exemples de passer la valeur null ici, mais au lieu de cela, vous pouvez passer à l'existant Toast ViewGroup que votre parent.
Ici, nous en remplacement de l'actuel Toast vue avec notre vue personnalisée. Une fois que vous avez une référence à votre disposition "mise en page", vous pouvez mettre à jour toutes les images/texte qu'il peut contenir.
Cette solution permet aussi d'empêcher toute "la Vue n'est pas attaché à la fenêtre du gestionnaire de" plante de l'utilisation de null en tant que parent.
Aussi, évitez d'utiliser ConstraintLayout que votre mise en page personnalisée de la racine, ce qui semble ne pas fonctionner lorsqu'il est utilisé dans un Toast.
Pour tous Kotlin Utilisateurs
Vous pouvez créer une Extension comme suit:
Référence : https://developer.android.com/guide/topics/ui/notifiers/toasts