7
votes

Que se passe-t-il si j'utilise le même identifiant pour plusieurs widgets de différentes mises en page?

Actuellement, je suis prudent d'utiliser différents identifiants pour chaque widget, mais si j'avais utilisé le même ID pour certains widgets dans différents fichiers XML de mise en page, que se passeraient mes appels à FOOTVIEVYID? Serait-il confus et renvoyer un widget du mauvais fichier de mise en page?

Je demande parce que je pensais y compris une vue (avec une rangée de boutons) dans d'autres vues, chacune de ces classes d'écran devrait affecter un Comportement légèrement différent sur chaque bouton de la vue incluse. Mais pour faire cela, ils appelleraient FindviewyID sur le même identifiant. Par exemple, je fais actuellement cela dans chaque fichier: xxx

mais je modifie le R.ID dans chaque fichier pour pointer sur le widget dans chaque mise en page assignée. Ce serait bien si je pouvais utiliser celui-ci pour tout pour tout pour que je n'ai pas à modifier chaque fichier de mise en page et chaque classe d'écran.

merci


0 commentaires

3 Réponses :


3
votes

Cela devrait aller aussi longtemps que vous n'instentiez pas les deux mises en page dans la même activité. Mais n'ayant jamais essayé, je ne voudrais pas le garantir.

Cependant, je ne serais pas surpris si la génératrice de code Android est toutefois erronée, car elle essaiera probablement de créer deux r.id.rshome_button entrées dans votre r.java < / em> fichier.


1 commentaires

Alors, comment ça sait lequel est celui que nous cherchons?



-1
votes

La meilleure façon de l'essayer vous-même.

Mais vous faites setContentView (r.layout.your_layout);

Donc, si vous appelez FindviewyID, il sera recherché un widget avec identifiant donné dans votre_layout

C'est pourquoi vous pouvez utiliser les mêmes identifiants dans différentes mises en page.


1 commentaires

R.id.view_id est un entier statique généré au moment de la compilation, avant que SetContentView () s'exécute.



8
votes

Oui, vous pouvez utiliser le même identifiant s dans différentes mises en page. En fait, cela peut être une bonne pratique à.


0 commentaires