J'ai cette méthode statique: Cependant, je ne peux pas comprendre comment obtenir le premier FindviewyID code> pour jouer sympa avec cela comme il le dit est une méthode non statique. Je comprends pourquoi cela dit que, mais il doit y avoir une solution de contournement? J'ai passé
contexte code> dans cette méthode mais je ne pouvais pas les travailler ensemble. P> p>
3 Réponses :
C'est un peu bizarre. Mais vous pouvez transmettre la vue root comme paramètre.
//some method... ViewGroup root = (ViewGroup) findViewById(R.id.toast_layout_root); displayLevelUp(level, context, root); //some method end... public void displayLevelUp(int level, Context context, ViewGroup root) { LayoutInflater inflater = (LayoutInflater) context .getSystemService(Context.LAYOUT_INFLATER_SERVICE); View layout = inflater.inflate(R.layout.custom_level_coast, root); TextView text = (TextView) layout.findViewById(R.id.toastText); text.setText("This is a custom toast"); Toast toast = new Toast(context); toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0); toast.setDuration(Toast.LENGTH_LONG); toast.setView(layout); toast.show(); Toast.makeText(context, String.valueOf(level), Toast.LENGTH_SHORT) .show(); }
Si vous souhaitez coller avec une méthode statique, utilisez une activité au lieu du contexte en tant que paramètre et faire une activité.FindviewbyID comme: Une autre façon de le faire est de transmettre le groupe de vue des parents En tant que paramètre au lieu d'un contexte ou d'une activité: p>
Une chose que vous pouvez faire est de faire la vue une variable de classe large et d'utiliser cela. Je ne recommande pas de faire ça, mais cela fonctionnera si vous avez besoin de quelque chose de rapide et de sale. P>
passer en vue sous forme de paramètre serait la manière préférée p>
Merci, je ne peux pas croire que je n'y pensais pas.
Vous n'avez pas besoin de transmettre un objet contextuel, mais un objet de vision. Celui qui tient votre point de vue
Pourquoi ne pas simplement rendre l'affichage d'une variable de classe large et d'y accéder de cette façon
@Wamasa qui a la bonne réponse..post it
@tyczj, j'ai réellement utilisé votre suggestion et ça marche génial! Vous pouvez poster cela comme réponse.
Pourquoi doit-il être statique de toute façon?
@ NJZK2 Son appelé d'une autre méthode statique qui doit être statique.