vérifiez si d'un point de vue existe à partir d'un modèle inflater avant d'ajouter un autre
Dans mon projet android, je suis l'ajout dynamique de formes à mon linéaires de mise en page et puis de les détruire quand je suis fait avec un bouton. Cependant, Lorsque je clique sur "ajouter un bouton" à l'infini ajoute plus de formes, bien que je veux un seul à la fois. Comment puis-je chec si mon linearLayout "comptes" a été ajouté à la vue ou s'il existe dans la vue à l'époque? C'est le code pour ajouter le point de vue. Comment puis-je vérifier pour voir si le point de vue existe déjà avant que je ajouter de la vue?
public void showForm(String form){
View view;
LayoutInflater inflater
=(LayoutInflater)this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = inflater.inflate(R.layout.forms, null);
LinearLayout item = (LinearLayout) view.findViewById(R.id.accounts);
l.addView(item);
}
Vous devez vous connecter pour publier un commentaire.
Option n ° 1: Utiliser
boolean accountsAdded=false;
, la valeurtrue
cas de besoinOption #2: Utilisation de
l.findViewById(R.id.accounts)
et voir si cela renvoienull
BTW, vous planter si la racine widget de
R.layout.forms
n'est pas leR.id.accounts
View
, de sorte s'il vous plaît ajouterview
, pasitem
, àl
viaaddView()
.addViewHierarchy()
, mais c'était peut-être trop tapé. 🙂Vous pouvez vérifier à partir de ViewGroup indexOfChild(View vue) méthode si l'enfant est d'exister ou pas. elle renvoie un entier positif correspondant à la position de la vue dans le groupe, ou -1 si la vue n'existe pas dans le groupe