Japanese subtitles

← 12-36 Casting with findViewById - Solution

Get Embed Code
13 Languages

Showing Revision 1 created 10/20/2015 by sp11.

  1. 1番目を見てみましょう。
  2. 回答を言う前に、このコードをコピーして、
  3. Android Studioにペイストします。
  4. どんなエラーが発生するかを見てみます。
  5. この問題を解くにおいて、Android Studioを使う必要はありません。
  6. このコードを見て回答しても
  7. いいです。
  8. Android Studioを使うか使わないかは任意です。
  9. このコードを実行するために、
    新しいプロジェクトを作って、
  10. acttivity.mainレイアウトファイルを変更して、
  11. これから使うIDを持つビューを入れてみたいと思います。
  12. このレイアウトがどのようになるかは分かりませんが、
  13. ビューIDに該当するビューを加えられれば
    大丈夫です。
  14. そうすれば、このコードを使うことができます。
  15. 1番目では、このコードをペイストして、
    エラーが発生したようです。
  16. ANdroidStudioが、setTextw認知できないとなっています。
  17. 前のビデオで、
  18. setTextはTextViewメソッドだといいました。
  19. つまり、このメソッドは、TextViewオブジェクトでしか
    使えないということです。
  20. ここでは、nameTextViewで使っています。
  21. nameTextViewはビューオブジェクトとして宣言されているので、
  22. それをTextViewオブジェクトに変えなければいけません。
  23. 次に、タイプが合わないというエラーです。
  24. ここでは、TextViewタイプのオブジェクトであるtextviewが
    必要ですが、
  25. ビュータイプのオブジェクトがあります。
  26. それは、findViewByIdはビューを出力するのに対して、
  27. 左側はTextViewを必要としているからです。
  28. なので、このfindViewByIdが出力したビューを
  29. TextViewにするために、
    これを加えなければいけません。
  30. このnameTextView全てを左側の変数に
  31. 記録します。
  32. エラーが消えましたね。このTextViewに「Laura」と
    設定します。
  33. 1行目にエラーがありますね。ここに正しいコードを書きました。
  34. ここでは、ビューをTextViewにするという回答でした。
  35. そうすれば、nameTextViewに記録することができます。
  36. そうすることによって、次の行で、TextViewメソッドの
  37. TextView.setTextを使うことができます。
  38. 2番目に行きましょう。
  39. これをコピーして、Android Studioにペイストします。
  40. これがペイストしたコードです。
  41. エラーがないので、1行目は正しいようです。
  42. しかし2行目には赤線があり、
  43. icompatible type error とあります。
  44. 文字列が必要だが、整数を見つけたとなっています。
  45. これを理解するために、
  46. TextViewのドキュメンテーションにある、
    getMaxLinesメソッドを見てみましょう。
  47. TextViewのドキュメンテーションで、getMaxLinesメソッドを
  48. 検索します。
  49. ここにありました。
  50. インプットはなく、
  51. 出力は整数になっています。
  52. この整数の出力がAndroid Studioのエラーに
  53. つながっています。
  54. 整数を文字列に記録しようとしているからです。
  55. この変数のタイプを整数に変えなければいけません。
  56. これでエラーが解消されました。
  57. この戻り値は整数です。
  58. なのでこのmaxLinesという変数に記録することができます。
  59. まだ警告が残っています。
  60. maxLinesという変数は使われていないとのことです。
  61. しかしこれは、コードの一部なので、
  62. 実際のアプリのコードでは、
  63. これを使うと思います。
  64. エラーは二行目で、これが回答です。
  65. このメソッドの戻り値は整数でなければ
  66. いけないという回答でした。
  67. 3番目に行きましょう。
  68. これが3番目のコードです。
  69. Android Studioにペイストしました。
  70. incompatibe typesというエラーが出ています。
  71. ImageViewが必要だが、viewを見つけたとあります。
  72. これは今見たTextViewのエラーと似ています。
  73. このメソッドはviewを返します。
  74. しかし左側ではImageViewとなっています。
  75. なので、このviewオブジェクトをImageViewに
    しなければいけません。
  76. iconというIDを持ったviewは実際にImageViewなので、
    この動作ができます。
  77. ImageViewにすることができます。
  78. これで右側がImageViewとして評価されるので、
  79. 左側の変数に記録することができます。
  80. この変数のタイプはImageViewなので、
    マッチしますね。
  81. エラーが消えました。
  82. 次に、SetImageResourceというImageViewのメソッドを
  83. このIconImageViewオブジェクトで呼ぶことができます。
  84. もう一つ、logoが認知できないというエラーがあります。
  85. これは、アプリで、logoという名前を加えなかったからです。
  86. それを加えれば、エラーは消えます。
  87. これが、viewをImageViewにする回答コードです。
  88. 4番目に行きましょう。
  89. Android Studioにコードをペイストしましたが、
    エラーがありません。
  90. このコードは、titleというIDをもったビューを探しています。
  91. これは、ビューを出力するもので、
    TextViewという変数に記録されます。
  92. TextViewのタイプははビューなので、
  93. 右側と合います。なので、このコードは正しいものです。
  94. 次の行で、ビューであるこのオブジェクトを使って、
  95. setVisibilityというメソッドを呼んでいます。
  96. View.GONEというパラメータを受け取ります。
  97. ドキュメンテーションをいて確認してみましょう。
  98. ビュークラスのドキュメンテーションで、
  99. setVisibilityメソッドを検索してみます。
  100. setVisibilityはvビュークラスの中のメソッドだということが
    分かります。
  101. 視界を表す整数をインプットとして受け取り、
  102. 視界の選択肢は、VISIBE,INVISIBLE,そしてGONEとなっています。
  103. setVisibilityはビュークラスの中のメソッドなので、
  104. これは妥当です。
  105. これをTextViewにする必要もありません。
  106. このメソッドはビュークラスのメソッドだからです。
  107. TextViewのメソッドを使う場合には、
  108. TextViewにしなければいけません。
  109. この問題では、エラーなしという回答になります。
  110. setVisibilityはビューのメソッドなので、
    このままビューオブジェクトで構いません。
  111. 難しい問題でしたね。
  112. すべて正解できなくても大丈夫です。
  113. 次のエクササイズでは、これについてさらに
    練習していきます。