01/10/2018, 10:15

Cho em hỏi về tạo custom ListView trong Android với ạ

Trong class custom adapter có đoạn code như sau:

khi mình sử dụng covertView.findView… thì những cái TextView bên trái nó sẽ liên hệ đến cái TextView như thế nào ạ, em không hiểu đoạn này lắm, mọi người giúp em với ạ

Quân viết 12:31 ngày 01/10/2018

bạn có học android cơ bản một cách nghiêm túc không vậy???

beginner viết 12:20 ngày 01/10/2018

có ạ, em chỉ biết cái tv_color(bên trái) nó ánh xạ với cái tv_color(bên phải) thôi ạ, tại bình thường em làm trong MainActivity thì không có cái View ở phía trước cái gọi hàm, nên em không hiểu lắm quan hệ giữa cái covertView và cái TextView ạ

Phạm Vinh viết 12:30 ngày 01/10/2018

mình đang định hỏi -_- . Nhưng cách bạn hỏi nặng quá

Quân viết 12:29 ngày 01/10/2018

@RootOnChair Nặng chút nhưng đúng trọng tâm bạn à
@beginnercplusplus convertView chứa tất cả các view được khai báo trong file xml, còn cái tv_color ở bên phải chính là id của view được khai báo bên trong file xml đó, đừng hỏi là không biết id của view trong lập trình Android là gì nhé. Đều là kiến thức nhập môn cơ bản cả thôi không có gì cao siêu cả đâu.
PS: học lập trình Android nói riêng và lập trình nói chung thì phải nghiêm túc và đi từ gốc đến ngọn, không được nhảy cóc thì mới vững được.

beginner viết 12:23 ngày 01/10/2018

ợc khai báo bên trong file xml đó, đừng hỏi là không biết id của view trong lập trình Android là gì nhé. Đều là kiến thức nhập môn cơ bản cả thôi không có gì cao siêu cả đâu.
PS: học lập trình Android nói riêng và lập trình nói chung thì phải nghiêm túc và đi từ gốc đến ngọn, không được nhảy cóc thì mới vữn

như vậy thì có phải cái convertView nó giống một cái ViewGroup không ạ

Phạm Vinh viết 12:21 ngày 01/10/2018

Đây nhé, ở MainActivity của bạn chắc chắn có dòng này

        setContentView(R.layout.sample_main_layout);

có nghĩa là nó sẽ lấy cái id mà bạn truyền vào (ở đây là R.layout.sample_main_layout) và Inflate (tạo ra) cái một View (gọi là root view) và tạo ra thêm các View con(child view)dựa trên layout đó nên khi bạn gọi findViewById() thì nó tự khắc hiểu là nên gọi từ cái root view nào và tự khắc gọi phương thức findViewById() của layout đó.

Ở đây findViewById() có nghĩa là tìm View trong root view tương ứng với cái id

Nhưng ở trong adapter thì bạn phải làm bằng tay do adapter luôn tạo thêm View khi nó cần.
Bạn có thể kiếm được những giải thích tương tự, có khi rõ hơn mình nếu bạn search google (bằng TA).
Mình khuyên bạn nên tập dần phát triển kỹ năng này. Nhưng bạn cũng tốt ở chỗ biết tìm hiểu ý nghĩa của đoạn code.

beginner viết 12:25 ngày 01/10/2018

em cảm ơn anh em hiểu rồi ạ

Bài liên quan
0