Indonesian subtitles

← Casting with findViewById

Get Embed Code
13 Languages

Showing Revision 1 created 10/04/2015 by sp16.

  1. Saya menambahkan kode yang
    baru saja kita lihat ke dalam aplikasi.
  2. Dikatakan Lihat
    orderSummaryTextView = findViewById,
  3. maka kita melwati sumber daya ID
    untuk order_summary_text_view tersebut.
  4. Tapi ini menyebabkan galat dalam
    Android Studio pada baris berikutnya.
  5. Dia mengatakan itu tidak dapat
    menyelesaikan metode setText.
  6. Jika saya menambahkan
    baris kode lain di sini,
  7. saya dapat menunjukkan jenis metode
    yang berlaku pada variabel ini.
  8. Jadi, kita baru saja membuat
    variabel orderSummaryTextView di sini,
  9. dan itu adalah TypeView,
  10. dan pada baris berikutnya, kita seharusnya
    bisa memanggil metode di atasnya.
  11. Tapi jika kau melihat saran autocomplete,
  12. metode ini sebenarnya metode melihat.
  13. Tidak ada metode TextView tertentu.
  14. Misalnya, tidak ada metode setText.
  15. Benar! Itulah sebabnya kita
    mendapatkan galat di sini
  16. saat kita mencoba untuk memanggil setText.
  17. Kau juga tidak dapat mengatur ukuran teks,
  18. atau mengatur warna teks,
    atau salah satu dari mereka.
  19. Jadi di mana semua metode itu?
  20. Masalahnya adalah TextView adalah
    jenis View yang lebih spesifik.
  21. Jadi jika kita ingin memanggil
    metode TextView pada objek ini,
  22. kita perlu memastikan
    bahwa ini adalah objek TextView.
  23. Oke. Sekarang variabelnya
    adalah objek TextView.
  24. Tapi saya mendapatkan galat lain
    yang mengatakan jenis tidak kompatibel,
  25. karena TextView diperlukan di sisi kanan,
  26. tapi kita hanya menemukan tampilan biasa.
  27. Itu karena metode findViewById
    mengembalikan sebuah View.
  28. Jadi bagaimana kita mendamaikan ini?
  29. Karena TextView adalah jenis View
    yang lebih spesifik atau dengan kata lain,
  30. TextView adalah bagian dari View,
  31. kita dapat menggunakan
    sesuatu yang disebut casting [pemilihan].
  32. Casting di Java,
  33. berarti kita dapat mengambil
    View dikembalikan oleh metode ini
  34. dan memperlakukannya sebagai
    sebuah TextView.
  35. Jadi sekarang sisi kanan ini
    sebenarnya objek TextView,
  36. Maka kita dapat menyimpannya di dalam
    variabel orderSummaryTextView ini.
  37. Saya tahu kalau ini pasti luar biasa,
  38. karena saya baru saja
    menyebutkan banyak konsep baru.
  39. Biarkan saya mencoba
    untuk menjelaskannya lagi.
  40. Metode findViewById
    ternyata objek tipe View.
  41. Dengan menulis notasi ini,
  42. kurung dengan jenis objek data
    yang diinginkan di tengah-tengah itu.
  43. Kami memilih View ini ke TextView.
  44. Jadi seluruh ekspresi di sini
    mengevaluasi ke objek TextView.
  45. Kemudian, kita dapat menyimpannya
    dalam variabel di sisi kiri,
  46. yang merupakan orderSummary TextView,
    dan memiliki tipe TextView.
  47. Sekarang, pada baris berikutnya, kita bisa
    memanggil metode TextView pada objek ini.
  48. Apa kau melihat sekarang bagaimana
    semua metode teks muncul di sini?
  49. SetAllCaps, setTextSize, dan banyak lagi.
  50. Jadi saya bisa menghapus ini sekarang,
    karena setText harus bekerja,
  51. dan tidak ada galat lagi.
  52. Jadi jika kita ingin dapat
    memanggil metode TextView,
  53. kita perlu memiliki objek TextView.
  54. Untuk dapat memiliki objek TextView,
    Kita perlu memanggil findViewById,
  55. dan kemudian memasukkan View ini
    ke objek TextView.
  56. Alasan hal ini bekerja
  57. karena tampilan dalam hirarki
    tampilan ini sebenarnya adalah TextView.
  58. Jika kita coba memasukkan sesuatu
    seperti tombol radio, itu takkan bekerja,
  59. karena orderSummaryTextView
    sebenarnya TextView,
  60. kita harus memasukkannya
    ke jenis yang sesuai.
  61. Sama dengan metode displayQuantity,
    kita memanggil findViewById
  62. dan kita melewati
    sumber ID ke kuantitas TextView.
  63. Ini mengembalikan View,
    dan kita memasukkannya ke TextView,
  64. kita dapat menyimpan di dalam variabel
    yang disebut quantityTextView.
  65. Variabel ini memiliki tipe TextView,
  66. dan pada baris berikutnya, kita bisa
    memanggil TextView metode di atasnya,
  67. seperti setText.
  68. Ini adalah kode MainActivity
    yang diperbarui menggunakan casting.
  69. Kita bisa masukkan Views ini ke TextViews,
  70. sehingga kita dapat
    menyimpannya dalam variabel
  71. yang memiliki jenis TextView
  72. sehingga dalam daftar
    variabel MainActivity,
  73. sekarang quantityTextView dan
    orderSummaryTextView adalah tipe TextView.
  74. Kita dapat memanggil
    metode TextView pada ini,
  75. dan kita tidak hanya terbatas
    untuk memperlakukan mereka sebagai Views.
  76. Dan sekarang kita dapat memanggil metode
    TextView tertentu pada variabel tersebut.
  77. Misalnya kita dapat memanggil setText
    pada orderSummaryTextView,
  78. dan kita dapat memanggil
    setText pada quantityTextView.
  79. Seperti yang kau lihat,
  80. kau harus berhati-hati mengenai
    tipe data yang digunakan di mana.
  81. Sejauh ini, saat kita memanggil metode,
  82. kita tidak khawatir tentang nilai kembali,
  83. karena metode setText
    sebenarnya tidak memiliki nilai kembali.
  84. Sama dengan metode
    imageView.setImageResource.
  85. Ini tidak memiliki nilai kembali.
  86. Tapi metode lain dapat
    mempunyai nilai kembali.
  87. Misalnya, di kelas TextView
    kita memiliki metode getTextSize.
  88. Ini mengembalikan bilangan bulat,
  89. kita dapat menyimpan hasil dari metode ini
  90. dalam variabel yang
    disebut ukuran tipe bilangan bulat.
  91. Ini metode lainnya
    yang memiliki nilai kembali.
  92. Di kelas Tombol, kau dapat
    memanggil metode getHeight,
  93. dan ini mengembalikan
    nilai bilangan bulat,
  94. agar kau dapat
    menyimpannya di dalam variabel.
  95. Jika kau mencoba menyimpan hasilnya
    di dalam string, misalnya,
  96. kau akan mendapatkan galat, karena
    metode ini mengembalikan bilangan bulat.
  97. Untuk mengetahui jenis data
    yang perlu diteruskan ke metode
  98. dan jenis data apa yang
    kembali dari sebuah metode,
  99. kau harus memeriksa dokumentasinya.
  100. Dan misalnya, di kelas TextView,
  101. jika kau memanggil salah satu metode ini,
  102. dia mengembalikan nilai
    tipe bilangan bulat.
  103. Kembalinya nilai tipe data
    ada di kolom sebelah kiri di sini.
  104. Untuk metode lain, kau mungkin mendapatkan
    kekosongan sebagai nilai kembali,
  105. atau boolean yang belum kita pelajari,
    atau mengapung atau panjang dan lain-lain.
  106. Halaman dokumentasi ini juga menunjukkan
  107. menunjukkan tipe data masukan
    yang diharapkan untuk setiap metode.
  108. Misalnya, metode setTextColor
    membutuhkan bilangan bulat sebagai masukan
  109. dan nilai kembali dibatalkan,
    jadi tidak ada nilai kembali.
  110. Jadi periksalah dokumentasi untuk
    mengetahui data apa jenis diharapkan.
  111. Jika tidak, kau akan
    mendapat galat di Android Studio
  112. dan mengatakan tipe datanya tidak cocok.
  113. Sekarang giliranmu untuk berlatih.
  114. Berikut adalah empat
    contoh kode yang berbeda.
  115. Beberapa kode mungkin mengandung galat,
    berkaitan dengan tipe data tidak sesuai.
  116. Jika kau menemukan galat,
  117. jelaskan bagaimana kau akan memperbaikinya
  118. dengan menulis di kotak yang disediakan.
  119. Jika tidak, kau dapat menulis tidak ada
    galat jika kode ini baik-baik saja.
  120. Ini akan jadi kuis yang menantang
    karena kita baru saja menutupi
  121. banyak konsep dan kode ini
    masih cukup baru untukmu.
  122. Luangkan waktumu dan memeriksa
    dokumentasi untuk metode ini.
  123. Pastikan bahwa masukan
    dan nilai kembalinya memang benar.
  124. Bahwa, jika kita menyatakan variabel,
  125. dan kita memiliki jenis data
    yang benar di sini.
  126. Juga, mencari dokumentasi
    untuk metode panggilan ini,
  127. untuk memastikan kita
    memakai metode dengan benar.