French subtitles

← 12-36 Casting with findViewById - Solution

Get Embed Code
13 Languages

Showing Revision 1 created 10/13/2015 by sp4.

  1. Regardons le numéro 1.
  2. Avant de révéler la réponse,
    je vais copier ce code et
  3. le coller dans Android Studio.
  4. Je veux vous montrer quelle
    genre d'erreur sortirait.
  5. Pour résoudre ce quizz, vous n'aviez
    pas besoin d'utiliser les appli en studio,
  6. Vous pourriez l'avoir résolu simplement en
    regardant le code ici et
  7. écrire alors dans la réponse.
  8. Alors, que vous utilisiez ou non
    Android studio, il est très bien avec moi.
  9. Pour faire fonctionner le code,
    Je créé un nouveau projet et
  10. Puis je l'ai modifié le fichier
    mainactivity layout afin qu'il
  11. ai un tas de vues avec ces identifiants
    que nous allons référencer.
  12. Je ne sais pas à quoi ce layout
    ressemblerait, mais
  13. Je voulais juste mettre les vues ici
    avec les noms vue correspondantes.
  14. De cette façon, mon
    code va marcher ici.
  15. Donc pour le numéro un, je colle le code
    ici, et je vois qu'il y a une erreur.
  16. Android Studios dit qu'il ne peut pas
    résoudre la méthode setText.
  17. Si vous vous souvenez
    de la dernière vidéo,
  18. J'ai mentionné que setText
    est une méthode de TextView.
  19. Vous pouvez appeler uniquement
    cette méthode sur des objets TextView.
  20. Dans ce cas, nous demandons
    sur nameTextView.
  21. Un nameTextView est déclarée
    d'être un objet de vue,
  22. Nous devons changer cette
    être un objet TextView.
  23. Ensuite, nous obtenons une erreur disant
    il ya des types incompatibles.
  24. Un textview, un objet de type
    TextView est nécessaire, mais
  25. Place il a trouvé un objet de type de vue.
  26. C'est parce qu'on trouve une vue
    par ID et ça retourne une vue, et
  27. Ce côté gauche nécessite une TextView.
  28. Cela signifie que nous
    devons ajouter ça dans
  29. la vue retournée par
    findViewById dans une TextView.
  30. Ensuite, nous pouvons
    stocker toute cette affaire,
  31. qui est le nameTextView,
    dans la variable de gauche.
  32. L''erreur disparaît, et on peut définir
    le texte, "Laura" sur cette TextView.
  33. L'erreur est sur la ligne 1, de sorte
    que j'ai écrit le code correct ici.
  34. L'explication est que nous devons
    jeter ce point de vue dans une TextView et
  35. stocker alors que l'intérieur
    une variable nameTextView.
  36. De cette façon, nous pouvons l'appeler
    nameTextView.setText,
  37. Qui est une méthode TextView,
    sur la ligne de code suivante ici.
  38. Passons au numéro deux.
  39. Je vais copier ce code et le mettre
    dans Android Studio.
  40. Voici le code que j'ai collé.
  41. La première ligne de code semble
    être correcte, il n'y a pas d'erreurs.
  42. Mais la deuxième ligne a
    un soulignement en rouge et
  43. il dit qu'il y a une erreur de
    types incompatibles.
  44. Il dit, une chaîne est nécessaire,
    mais il a trouvé à la place un int.
  45. Pour mieux comprendre cela,
  46. Nous devrions rechercher la méthode
    getMaxLines dans la doc de TextView.
  47. Dans la documentation de TextView,
    Je vais chercher
  48. La méthode getMaxLines.
  49. Et c'est ici.
  50. Il n'y a pas de paramètres d'entrée, et
  51. La valeur de retour de cette méthode de
    est un entier.
  52. Voilà pourquoi l'atelier Android
    se plaignait, parce que cette méthode,
  53. car elle retourne un entier, mais
  54. nous essayions de le stocker
    dans une variable String.
  55. Je dois changer ce type de variable de
    de données pour être un int.
  56. Puis l'erreur disparaît.
  57. Ainsi, la valeur de retour de
    cette méthode est un entier.
  58. Donc, nous pouvons stocker à l'intérieur
    cette variable maxLines.
  59. Il y a un avertissement restant.
  60. Qui dit que les variables
    maxlines ne sont jamais utilisées.
  61. Mais ceci est juste un extrait de code.
  62. Je suppose que si c'était
    dans une application normale nous
  63. voudrions réellement
    utiliser cette variable plus tard.
  64. Donc, l'erreur est sur la ligne deux et
    voici le code mis à jour.
  65. L'explication est que la valeur de
    retour de cette méthode devrait
  66. être un nombre entier.
  67. Passons au numéro trois.
  68. Voici un code pour le numéro trois.
  69. Je copie et colle le code pourle
    numéro trois dans Android Studio.
  70. Il y a un message d'erreur qui dit
    types incompatibles.
  71. Un ImageView était nécessaire,
    mais au lieu de ça il a trouvé une vue.
  72. Ceci est similaire à l'erreur que
    nous venons de voir avec le TextView.
  73. Cette méthode retourne une vue.
  74. Et, sur le côté gauche, nous essayons
    de le stocker dans un ImageView.
  75. Nous avons donc besoin de jeter
    ce point de vue objet dans un ImageView.
  76. C'est valable car la vue avec l'icône
    d'identification est en fait un ImageView,
  77. Il est si bon de jeter ça
    dans une vue de l'image.
  78. Maintenant que le côté droit
    évalue un ImageView,
  79. Nous pouvons stocker la variable que
    sur le côté gauche.
  80. Cette variable a une ImageView de type
    de données, tout correspond et
  81. l'erreur a disparu.
  82. De ce côté, nous pouvons appeler
    une méthode d'ImageView,
  83. SetImageResource, sur
    cet objet IconImageView.
  84. Il y a une erreur restante disant
    qu'il ne peut pas résoudre symbole logo.
  85. car je n'ai pas ajouté une image dans
    notre application avec le nom logo.
  86. Si j'avais ajouté ça alors
    notre code serait correct.
  87. Voici le code correct où j'ai noté
    ce point de vue dans un ImageView.
  88. Enfin, nous avons numéro 4.
  89. Je collé le code ici dans Android studio
    et étonnamment il n'y a pas d'erreurs.
  90. Le code essaie de trouver
    une vue avec le titre de id, et
  91. devrait renvoyer une vue, et qui est
    stockée dans cette variable TextView.
  92. TextView a un type de
    vue de données, de sorte
  93. que ça correspond au côté droit, donc
    toute cette ligne de code est correct.
  94. Sur la ligne suivante, nous prenons
    cet objet, qui est une vue et
  95. nous appelons une méthode de setVisibility
    sur elle.
  96. La méthode prend en entrée
    un paramètre qui est View.GONE.
  97. Je peux vérifier la documentation
    afin de vérifier pourquoi.
  98. Dans la documentation de la classe
    de vue, je peux chercher
  99. le procédé setVisibility.
  100. Je peux voir que setVisibility est une
    méthode au sein de la classe d'affichage.
  101. Il prend cette entrée, un entier qui
    représente l'état de visibilité.
  102. Les valeurs de visibilité possibles
    sont VISIBLE, INVISIBLE, and GONE.
  103. Car setVisibility est une méthode
    sein de la classe vue,
  104. Ceci est un appel valide ici.
  105. Il n'y a pas besoin de marquer
    cela dans un TextView
  106. Parce que la méthode que nous appelons
    est une méthode de la classe de vue.
  107. Maintenant, si nous essayions de
    utiliser une méthode de TextView,
  108. Alors nous aurions besoin de
    jeter à un TextView.
  109. Donc, pour cette question,
    vous devriez mettre aucune erreur, car
  110. SetVisibility est une méthode d'affichage,
    il faut le laisser comme un objet View.
  111. Ce sont des questions difficiles.
  112. C'est pas grave si vous ne
    les avez pas eu bonnes.
  113. Dans le prochain test, vous aurez
    une chance de pratiquer ça plus.