Vietnamese subtitles

← Casting with findViewById

Get Embed Code
13 Languages

Showing Revision 1 created 10/10/2015 by sp8.

  1. Tôi đã thêm đoạn code chúng ta
    đang nhìn thấy đây vào ứng dụng.
  2. Ở đây ghi orderSummaryTextView
    = findViewByld,
  3. rồi chuyển ID tài nguyên vào
    the order_summary_text_view.
  4. Nhưng có lỗi phát sinh
    trong Android Studio hàng tiếp theo.
  5. Báo lỗi là không thể xử lý
    phương thức setText.
  6. Nếu tôi thêm một dòng code ở đây.
  7. Tôi sẽ hiển thị các loại phương thức
    hợp lệ đối với biến này.
  8. Chúng ta vừa tạo
    biến orderSummaryTextView ở đây,
  9. Đó là một TypeView,
  10. trên dòng code tiếp theo,
    chúng ta có thể gọi các phương thức này.
  11. Nhưng nếu bạn nhìn vào
    các đề xuất điền tự động,
  12. chúng là phương thức hiển thị.
  13. Không có phương thức TextView cụ thể.
  14. Ví dụ, không có phương thức setText.
  15. Đó là tại sao ở đây có lỗi
    khi chúng ta gọi setText.
  16. Bạn không thể định kích thước văn bản
    màu sắc văn bản, hay các yếu tố khác.
  17. Tất cả các phương thức đó ở đâu?
  18. Vấn đề là một TextView
    là một loại hiển thị cụ thể.
  19. Nên nếu muốn gọi các phương thức
  20. trên đối tượng này cần đảm bảo rằng
    đây là một đối tượng TextView.
  21. Được rồi.
    Bây giờ biến là đối tượng TextView.
  22. Nhưng bây giờ lại có lỗi khác
    TextView không tương thích, vì TextView
  23. được yêu cầu ở bên tay phải này,
    nhưng chúng ta đang tìm hiển thị thường.
  24. Vì phương thức findViewByld
    trả về một hiển thị.
  25. Làm sao xử lý lỗi này?
  26. Vì TextView là một loại hiển thị cụ thể
    hay nói cách khác.
  27. TextView là một subclass [lớp con]của hiển
    thị chúng ta có thể casting.[ép kiểu]
  28. Casting có nghĩa là qua phương thức này
    có thể nhận được hiển thị trả về
  29. và xử lý nó như một TextView.
  30. Bây giờ phía bên phải
    là một đối tượng TextView
  31. chúng ta có thể lưu nó bên trong
    biến orderSummaryTextView này.
  32. Tôi biết thao tác này
    khá khó vì tôi vừa nói
  33. tới rất nhiều khái niệm.
  34. Tôi sẽ giải thích lại.
  35. Phương thức findViewByld trả về
    một đối tượng hiển thị nhập liệu.
  36. Bằng cách viết ký hiệu này,
  37. đóng ngoặc loại dữ liệu
    đối tượng ở giữa.
  38. Chúng ta ép kiểu hiển
    thị này vào TextView.
  39. Vì vậy cả biểu thức này
    bằng với một đối tượng TextView.
  40. Sau đó có thể lưu nó trong biến,
    ở phía bên tay trái,
  41. đó là TextView orderSummary,
    nó có một TextView nhập liệu.
  42. Ở các dòng code tiếp theo có thể gọi các
    phương thức TextView trên đối tượng này.
  43. Bạn có thấy bây giờ các phương thức
    văn bản được hiển thị ở trên đây không?
  44. SetAllCaps, setTextSize, vân vân.
  45. Tôi có thể xóa cái này đi
    vì setText đã vận hành ổn,
  46. không mắc lỗi.
  47. Nếu chúng ta muốn
    gọi các phương thức TextView,
  48. phải có một đối tượng TextView.
  49. Để có đối tượng TextView,
    Chúng ta cần gọi findViewByld,
  50. và ép kiểu đối tượng hiển thị này
    vào trong một TextView.
  51. Ép kiểu có hiệu quả vì
  52. hiển thị này ở trong
    phân cấp hiển thị là một TextView.
  53. Nếu ép kiểu nó thành dạng khác
    như thành nút chỉnh radio, sẽ không được
  54. vì orderSummaryTextView
    là một TextView
  55. nên phải ép kiểu nó vào
    loại thích hợp.
  56. Tương tự, trong displayQuantity
    gọi phương thức findViewByld
  57. chúng ta chuyển ID tài nguyên vào
    trong TextView số lượng.
  58. Nó trả về một hiển thị TextView
    chúng ta ép kiểu nó vào TextView
  59. chúng ta có thể lưu bên trong
    biến số quantity TextView.
  60. Biến này có TextView nhập liệu,
  61. trên các dòng tiếp theo, chúng ta có thể
    gọi phương thức TextView, vd. SetText.
  62. Đây là code cập nhật bởi MainActivity
    bằng cách sử dụng ép kiểu.
  63. Có thể ép kiểu các hiển thị vào TextView
    để lưu chúng trong biến
  64. có chứa TextView nhập liệu
    nên trong danh sách các biến MainActivity
  65. bây giờ quantityTextView
    là TextView nhập liệu.
  66. Có thể gọi phương thức TextView cho chúng.
  67. Chúng ta không chỉ giới hạn ở chỗ
    có thể xử lý chúng như các hiển thị.
  68. Mà còn có thể gọi
    các phương thức TextView trên các biến.
  69. Ví dụ chúng ta có thể gọi setText
    trên orderSummaryTextView,
  70. Chúng ta cũng có thể gọi setText
    trên quantityTextView.
  71. Như bạn đã thấy,
  72. bạn phải thận trọng xem
    loại dữ liệu nào dùng ở chỗ nào thì được.
  73. Tính đến bài này, khi gọi phương thức,
    chúng ta không lo lắng về giá trị trả về,
  74. vì phương thức setText
    thực sự không có giá trị trả về.
  75. Giống với
    phương thức imageView. SetlmageResource.
  76. Nó không có giá trị trả về.
  77. Nhưng các phương thức khác
    có thể có giá trị trả về.
  78. Ví dụ, trong lớp TextView
    chúng ta có phương thức getTextSize.
  79. Nó trả về một số nguyên,
  80. Có thể lưu kết quả phương thức này
    trong biến hằng nguyên kích thước loại
  81. Đây là một phương thức khác
    có giá trị trả về.
  82. Trong lớp Button bạn có thể
    gọi phương thức getHeight [lấy chiều cao]
  83. Nó trả về một giá trị số nguyên
    bạn có thể lưu nó vào biến.
  84. Nếu bạn đã lưu trữ kết quả này
    ví dụ như bên trong một chuỗi,
  85. sẽ có báo lỗi
    vì phương thức này trả về một số nguyên.
  86. Để biết loại dữ liệu
    cần được chuyển vào phương thức
  87. và loại dữ liệu trả về từ phương thức
    nên kiểm tra sưu liệu.
  88. Ví dụ, trong lớp TextView,
  89. Nếu gọi một phương thức bất kỳ trong đây
    sẽ trả về một giá trị loại int.
  90. Loại dữ liệu trả về
    nằm bên cột tay trái ở đây.
  91. Với các phương thức khác, bạn có thể nhận
    giá trị trả lại là void [rỗng], boolean.
  92. Boolean thì chúng ta chưa học tới,
    hoặc float[chấm động] hoặc kiểu số long.
  93. Trang sưu liệu này cũng hiển thị
    các loại dữ liệu cần
  94. để nhập liệu trong mỗi phương thức.
  95. Ví dụ, phương thức setTextColor
    đòi hỏi dữ liệu đầu vào là số nguyên
  96. giá trị trả về là void,
    vậy không có giá trị trả về.
  97. Hãy kiểm tra sưu liệu để biết
    cần loại dữ liệu nào.
  98. Nếu không, sẽ có báo lỗi
    từ Android Studio
  99. lỗi dữ liệu không khớp.
  100. Bây giờ đến lượt bạn thực hành.
  101. Dưới đây là 4 ví dụ code khác nhau.
  102. Một số code có thể có lỗi
    do loại dữ liệu không tương thích.
  103. Nếu bạn thấy có lỗi,
  104. hãy mô tả cách sửa lỗi
    viết ra các ô này.
  105. Ghi là "Không có lỗi"
    nếu mã hoàn toàn ổn.
  106. Bài này sẽ khó
    vì chúng ta vừa học qua
  107. quá nhiều khái niệm,
    code này vẫn còn khá mới mẻ với bạn.
  108. Hãy dành thời gian kiểm tra
    sưu liệu cho các phương thức này.
  109. Hãy đảm bảo là các giá trị đầu vào
    cũng như các giá trị trả lại chính xác
  110. để khi chúng ta khai báo biến
    chúng ta sẽ có loại dữ liệu đúng.
  111. Cũng hay tra cứu sưu liệu
  112. học cách gọi các phương thức này để
    dùng phương thức đúng cách.