Indonesian subtitles

← 12-36 Casting with findViewById - Solution

Get Embed Code
13 Languages

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

  1. Mari perhatikan nomor 1.
  2. Sebelum saya berikan jawabannya,
    saya akan salin kode ini,
  3. dan menempelnya ke dalam Android Studio.
  4. Saya ingin tunjukkan pada Anda
    kesalahan yang dapat muncul.
  5. Saat Anda menjawab kuis ini, Anda
    tidak perlu menggunakan Android Studio,
  6. Anda bisa menjawabnya hanya
    dari melihat kode ini
  7. lalu menuliskan jawabannya.
  8. Jadi, apakah menggunakan atau tidak
    menggunakan Android Studio, bukan masalah.
  9. Agar kode bekerja,
    saya membuat projek baru
  10. kemudian memodifikasi berkas
    activity_main layout, sehingga
  11. akan memiliki banyak View dengan
    ID yang kita akan referensi ini.
  12. Saya bahkan tak yakin
    nantinya seperti apa
  13. Saya hanya ingin menempatkan View di sini
    dengan nama ID yang sesuai.
  14. Dengan seperti itu,
    kode saya akan bekerja di sini.
  15. Untuk nomor satu, saya tempel kode
    di sini, dan bisa dilihat ada kesalahan.
  16. Android Studios mengatakan kalau dia
    tidak bisa memecahkan method setText.
  17. Jika Anda ingat
    video sebelumnya,
  18. Saya menyebutkan bahwa setText
    merupakan metode TextView.
  19. Yang berarti, Anda hanya dapat memanggil
    metode ini pada objek TextView.
  20. Dalam hal ini,
    kita memanggilnya pada nameTextView.
  21. nameTextView dinyatakan
    untuk menjadi objek View,
  22. kita harus mengubahnya menjadi
    objek TextView.
  23. Lalu, ada kesalahan yang menyebutkan
    terdapat tipe yang tidak kompatibel.
  24. Textview, objek dari tipe
    TextView yang dibutuhkan, tapi
  25. sebaliknya, dia malah menemukan
    objek dari type view.
  26. Hal itu karena, findViewById mengembalikan
    sebuah view, dan
  27. sebelah kiri sebenarnya membutuhkan
    sebuah TextView.
  28. Yang berarti, kita harus menambahkan ini
    untuk melempar
  29. view yang dikembalikan oleh
    findViewById ke dalam TextView.
  30. Kemudian, kita bisa menyimpan semua ini,
  31. yaitu nameTextView,
    ke variabel sebelah kiri.
  32. Kesalahan sudah tidak ada, dan kita atur
    setText "Laura" dalam TextView ini.
  33. Kesalahan ada pada baris 1, jadi
    saya tulis kode yang benar di sini.
  34. Penjelasan umumnya adalah bahwa kita perlu
    melempar view ini ke dalam TextView dan
  35. kemudian menyimpannya
    di dalam variabel nameTextView.
  36. Dengan seperti itu,
    kita dapat memanggil nameTextView.setText,
  37. yang merupakan metode TextView,
    pada baris lain dari kode ini.
  38. Lanjut ke nomor dua. Saya akan salin
    kode ini dan menaruh di Android Studio.
  39. Inilah kode yang saya tempel.
  40. Baris pertama kelihatannya benar,
    tidak ada kesalahan terlihat.
  41. Tapi terdapat garis merah
    pada baris kedua dan
  42. dikatakan kalau ada kesalahan
    tipe yang tidak kompatibel.
  43. Dikatakan bahwa string yang diperlukan
    tapi sebaliknya malah int yang ditemukan.
  44. Untuk memahami lebih baik,
  45. kita harus melihat metod getMaxLines
    yang ada di dalam dokuementasi TextView.
  46. Di dalam dokumentasi TextView,
    saya akan mencari
  47. metode getMaxLines.
  48. Dan ini dia.
  49. Tidak ada input parameter, dan
  50. nilai kembaliannya adalah
    sebuah integer
  51. Itulah mengapa Android studio mengeluh,
    karena metode ini,
  52. dia mengembalikan integer, tapi
  53. kita mencoba menyimpannya
    ke dalam variabel String.
  54. Sebagai hasilnya, saya perlu mengubah
    tipe data variabel menjadi int.
  55. Lalu, kesalahan ini akan menghilang.
  56. Nilai kembalian metode ini
    adalah integer.
  57. Jadi, kita bisa menyimpannya
    ke dalam variabel maxLines.
  58. Masih ada peringatan yang tersisa.
  59. Mengatakan kalau variabel
    maxLines tidak pernah digunakan.
  60. Tapi ini hanyalah potongan kode.
  61. Saya berasumsi jika ini
    berada dalam aplikasi biasa
  62. kita pasti ingin menggunakan
    variabel ini nanti.
  63. Jadi, kesalahan pada baris kedua dan
    inilah kode yang sudah diperbarui.
  64. Penjelasan umumnya adalah nilai kembalian
    dari metode ini harusnya
  65. sebuah integer.
  66. Lanjut ke nomor tiga.
  67. Inilah kode untuk nomor tiga.
  68. Saya salin dan tempel kode untuk
    nomor tiga di Android Studio.
  69. Kesalahan menyebutkan kalau
    terdapat tipe yang tidak kompatibel.
  70. Yang dibutuhkan adalah ImageView,
    tapi sebaliknya View yang ditemukan.
  71. Kesalahan ini mirip dengan
    yang ada dalam TextView.
  72. Metode ini mengembalikan view.
  73. Dan, pada sisi kiri, kita mencoba
    menyimpannya di dalam ImageView.
  74. Jadi, kita perlu melempar view ini
    ke dalam ImageView.
  75. Hal ini berlaku karena view dengan
    id.icon sebenarnya adalah ImageView,
  76. sehingga tak apa untuk melemparnya
    ke dalam ImageView.
  77. Sekarang, sebelah kanan
    mengevaluasi ke ImageView,
  78. kita bisa menyimpannya ke dalam
    variabel di sebelah kiri.
  79. Variabel ini memiliki tipe data ImageView
    jadi sekarang semuanya cocok dan
  80. kesalahan sudah menghilang.
  81. Di sebelahnya, kita bisa
    memanggil ImageView method,
  82. SetImageResource, ke dalam
    objek IconImageView ini.
  83. Satu kesalahan tersisa yang menyebutkan
    kalau tidak bisa memecahkan simbol logo.
  84. Itu karena saya tidak menambahkan gambar
    ke dalam aplikasi dengan nama logo.
  85. Jika saya menambahkannya, kesalahan itu
    menghilang, sehingga kode menjadi benar.
  86. Inilah kode yang benar dimana
    saya melepar view ke dalam ImageView.
  87. Terakhir, nomor 4.
  88. Saya tempel kode di Android Studio dan
    mengejutkannya tidak ada kesalahan lagi.
  89. Kodenya mencoba mencari view
    dengan id.title
  90. itu seharusnya bisa mengembalikan view,
    dan tersimpan ke dalam variabel TextView.
  91. TextView memiliki tipe data dari View,
    sehingga
  92. itu sesuai dengan sebelah kanan,
    jadi seluruh baris kode ini benar.
  93. Pada baris selanjutnya kita ambil
    kode ini, yang merupakan View
  94. dan kita memanggil metode
    setVisibility padanya.
  95. Metode ini mengambil satu
    parameter input yaitu View.GONE.
  96. Saya akan cek dokumentasi
    untuk membuktikan mengapa itu.
  97. Di dalam dokumentasi kelas View,
    saya bisa mencari
  98. metode setVisibility.
  99. Bisa dilihat kalau setVisibility adalah
    sebuah metode di dalam kelas view.
  100. Dibutuhkan input ini, integer yang
    mewakili keadaan visibility.
  101. Kemungkinan nilai visibility adalah
    VISIBLE, INVISIBLE, dan GONE.
  102. Karena setVisibility adalah
    metode di dalam kelas view,
  103. ini adalah panggilan yang sah di sini.
  104. Tidak perlu lagi melemparnya
    ke dalam TextView
  105. karena metode yang kita panggil
    adalah metode dari kelas view.
  106. Sekarang, jika kita mencoba untuk
    menggunakan metode TextView,
  107. maka kita perlu melemparnya
    ke dalam TextView.
  108. Jadi, untuk pertanyaan ini
    jangan ada kesalahan, karena
  109. setVisibility adalah metode View, dan tak
    apa meninggalkannya sebagai objek View.
  110. Ini semua adalah pertanyaan sulit.
  111. Tak apa jika
    salah menjawabnya.
  112. Dalam tes berikutnya, Anda punya
    kesempatan untuk berlatih lagi.