CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[Android Studio] Modifier un Layout dans le code

PhilippeGerbier
PhilippeGerbier
Niveau 10
08 février 2019 à 19:56:04

Bonjour je débute sur android studio et je galère à trouver une réponse.

Comment modifier un attribut (en l'occurence la visibilité) d'un layout dans le code?
En clzire comment j'accède à un layout crée dans le activity_main.xml (en designer) dans mon MainActivity.java?

Merci de votre aide

Bunyan
Bunyan
Niveau 17
08 février 2019 à 20:31:31

Tu choppes ton widget via un findViewById et tu utilises la méthode setVisibility :)

VivreUnEldorado
VivreUnEldorado
Niveau 45
10 février 2019 à 23:10:11

Hello,

Etape 1 : Jette un coup d'oeil à ton manifest

Dans le répertoire des sources du module adéquat (`app` par défaut), regarde le contenu du fichier `AndroidManifest.xml`.

La valeur de l'attribut `package` de l'élément `manifest` détermine le chemin de paquetage du Resolver. Par exemple, avoir `package = "com.example.truc"` implique que la classe du Resolver (de nom `R`) s'y trouvera, et pour l'importer tu écriras alors `import com.example.truc.R` dans le fichier Java où tu souhaites récupérer le widget que tu souhaites, présent dans le layout que tu considères.

Effectivement, c'est le Resolver qui, par l'ID du widget par exemple, te permettra de le récup'.

NB : attention à bien spécifier l'ID de ton application dans le fichier Gradle de compilation situé dans le module concerné (le nom du module est par défaut `app`), si tu changes la valeur de cet attribut `package`.

Etape 2 : Dans ton activité, utilise findViewById

Cette méthode est disponible dans la classe View et dans la classe Activity entre autres.

1. View : si tu utilisais un fragment (ce qui n'est pas ton cas, tu utilises une activité !), il te faudrait récupérer par exemple appeler `findViewById` sur la vue inflatée de ton fragment.

2. Activity : c'est ton cas. Ici, tu peux directement faire appel à `findViewById`

En guise de paramètre, fournis à ton `findViewById` le retour de `R.id.<l'identifiant du widget, présent dans la vue ou activité qui appelle le findViewById>`. Tu recevras en retour un objet de type `View`. Celui-ci est le widget que tu souhaitais récupérer.

3. Etape 3 : tu peux convertir ce retour en ce que tu souhaitais récupérer (`ImageView` ? `TextView` ? etc. etc.)

Message édité le 10 février 2019 à 23:12:45 par VivreUnEldorado
Sous forums
  • Aide à l'achat Mac
  • Création de Jeux
  • Linux
  • Programmation
  • Création de sites web
  • Internet
  • Steam Deck
  • Macintosh
  • Hardware
La vidéo du moment