Je suis l’ajout de TextViews par programme dans une boucle for et ajoutez-les à un ArrayList.
Comment utiliser `` ? Quel ID entier je l’invente donc il n’est pas en conflit avec les autres identifiants ?
Je suis l’ajout de TextViews par programme dans une boucle for et ajoutez-les à un ArrayList.
Comment utiliser `` ? Quel ID entier je l’invente donc il n’est pas en conflit avec les autres identifiants ?
Google a enfin pris conscience de la nécessité de générer des Identifiants uniques pour créé par programmation de points de vue...
À partir de l'API de niveau 17 ci-dessus, vous pouvez appeler
Ensuite, utilisez la Vue.setId(int).
Dans le cas où vous en avez besoin pour les cibles de niveau inférieur au 17, ici, c'est sa mise en œuvre en interne View.java vous pouvez utiliser directement dans votre projet, de le mettre dans votre util classe ou quelque part:
private static final AtomicInteger sNextGeneratedId = new AtomicInteger(1);
/**
* Generate a value suitable for use in {@link #setId(int)}.
* This value will not collide with ID values generated at build time by aapt for R.id.
*
* @return a generated ID value
*/
public static int generateViewId() {
for (;;) {
final int result = sNextGeneratedId.get();
// aapt-generated IDs have the high byte nonzero; clamp to the range under that.
int newValue = result + 1;
if (newValue > 0x00FFFFFF) newValue = 1; // Roll over to 1, not 0.
if (sNextGeneratedId.compareAndSet(result, newValue)) {
return result;
}
}
}
Numéro d'identification de plus de 0x00FFFFFF est réservé pour des vues statiques définies dans le /res des fichiers xml. (Le plus probable 0x7f****** à partir de la R.java dans mes projets.)
Dans votre code, vous pouvez le faire:
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR1) {
myView.setId(Utils.generateViewId());
} else {
myView.setId(View.generateViewId());
}
Selon `` documentation
L’identificateur n’a pas à être unique dans la hiérarchie de ce point de vue. L’identificateur doit être un nombre positif.
Vous pouvez donc utiliser n’importe quel entier positif que vous aimez, mais dans ce cas, il peut y avoir des vues avec l’équivalent de l’id Si vous souhaitez rechercher pour certains vue dans la hiérarchie en appelant au `` avec quelques objets clés peut être très pratique.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.