Adapter trong android là gì

 - 

Dẫn nhập

Tại những bài học kinh nghiệm trước, họ đang cùng nhau mày mò về MATERIAL DESIGN, một số nguyên tắc cơ bản của nó, với biện pháp tích thích hợp nó vào vào vận dụng Android, cũng như những coding convention giành cho Android nhưng Kteam cho rằng tương đối hiệu quả.

Bạn đang xem: Adapter trong android là gì

Và ngơi nghỉ bài này, chúng ta vẫn thuộc đến 1 phần khác mà lại chúng ta biết đến đã yêu luôn: Hiển thị danh sách.

Rồi hẳn gồm các bạn sẽ nói: “Hư cấu! Danh sách thì có gì nhưng yêu”.

Có đấy, các là đằng khác. Nào, xin mời!

Nội dung

Để đọc gọi bài bác này cực tốt chúng ta đề xuất có kiến thức và kỹ năng cơ bản về các phần:

Biết áp dụng mảng (array) hoặc danh sách (List) vào Java. Cái này vô cùng quan trọng đặc biệt.

Trong bài học kinh nghiệm này, chúng ta sẽ cùng tò mò các vấn đề:

Các bí quyết hiển thị danh sách bên trên áp dụng Android.ListView là… dòng gì?Cách hiển thị một list đơn giản dễ dàng, toàn chữ.Cách hiển thị một list phức hợp hơn một ít, bao gồm 2 cái và 1 hình tượng.

ListView là cái gì?

ListView là 1 trong những View quan trọng đặc biệt. Ấy ấy nếu như bạn chưa chắc chắn View là gì thì hãy đọc qua bài “CÁC THÀNH PHẦN GIAO DIỆN CƠ BẢN” đang nhé.

điều đặc biệt là sao? Là ListView có thể hiển thị một list nào đó.

Hẳn vẫn có khá nhiều các bạn nghĩ solo giản:“Ùi dào ôi, nếu muốn hiển thị n phần tử thì tạo nên n dòng View là hoàn thành chđọng gì?”

Không, chớ làm cho vậy. Đã là lập trình viên thì họ đề xuất về tối ưu cùng auto hóa đầy đủ đồ vật hoàn toàn có thể. điều đặc biệt là sau đây Lúc list được bổ sung cập nhật / thêm bớt thì sao?

lấy ví dụ đấy là một danh sách cơ bản, chỉ bao gồm chữ:

*

Còn đây là một danh sách phức hợp hơn một tí, bao hàm ảnh, và chữ, sắp xếp theo từng ô (nếu như bạn muốn biết tên app thì nó là MangaRock, app hiểu chuyện tranh yêu mếm của mình):

*

*

Đó, có 2 kiểu dáng bong bóng thoại màu xám màu xanh lá cây dương, căn uống lề theo phía hai bên.

ListView cơ phiên bản nhất

Đúng! Sau phía trên bản thân vẫn khuyên bảo chúng ta có tác dụng một ListView dạng cơ bạn dạng duy nhất.

Tại sao ListView cũng là View nhưng mà bản thân không giới thiệu sinh sống bài xích trước mà lại đặt ra một bài riêng? Vì cách tiến hành nó khó khăn hơn View thông thường.

Nhưng giả dụ so sánh ra thì họ sẽ sở hữu được ListView là:

Một View bình thường.Nó rất có thể cất được các View khác (dẫu vậy chưa hẳn là ViewGroup) Nó yêu cầu dữ liệu để hiển thị danh sách ra (mảng, menu, array các mục,…).

Xem thêm: Cây Nhất Mạt Hương Hợp Tuổi Gì, Cây Nhất Mạt Hương Hợp Tuổi Nào

Bước 1: Chúng ta lại tạo nên một project bắt đầu, đánh tên là ListViewExample nhé. Với Activity chính là MainActivity:

*

Bước 2: Ở phía trên bọn họ sẽ làm một ListView cùng với nội dung hiển thị hết sức đối kháng giản: Một mảng các String.

Code trực tiếp luôn luôn vào MainActivity.java nhé:

MainActivity.java

package com.saigonmachinco.com.vn.listviewexample;import app android.tư vấn.v7.ứng dụng.AppCompatActivity;import apk.os.Bundle;public class MainActivity extends AppCompatActivity
Override protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); String<> items = "Doan Ngoc Giau", "Pmê mẩn Kim Long", "Kteam"; Ok, núm là gồm mảng rồi, ưa thích nhé. Sang bước tiếp theonào.

Bước 3: Thêm ListView vào file XML:

Chúng ta xóa sổ mẫu TextView đi cùng cố kỉnh bằng ListView, nhớ đặt id mang đến nó:

activity_main.xml

Vậy là xong… bọn họ quý phái bước… à khoan!

Chưa xong xuôi, để hiển thị được mảng String sinh hoạt bên trên vào ListView thì bọn họ đề xuất chuyển từng String vào một View con phía bên trong ListView. Mỗi vật phẩm trong ListView đều có một layout riêng biệt. Các các bạn chuột cần vào res/layout > New Android resource file nlỗi hình:

*

Đặt tên mang lại nó là item_name nhé (mỗi String là tên người mà, nhằm “name” mang đến dễ hiểu):

*

Nội dung của file nhỏng sau:

item_name.xml

Cách 4: Phần này quan trọng đây!Chúng ta sẽ tạo ra Adapter.

Hỏi: Ớ ớ, Adapter là mẫu gì?

Trả lời: Adapter là class để ánh xạ tòa tháp view của chúng ta và cống phẩm trong list String đầu vào. Trong ngôi trường vừa lòng này, nó ánh xạ từng thành phần vào mảng String<> items vừa khai báo ngơi nghỉ bên trên.

Nếu chúng ta vẫn chưa biết đến thì cứ giữ vững, bắt chiếc y như mình, code tiếp, kế tiếp mình đã lý giải bổ sung cập nhật. Trước phía trên bản thân cũng khá lù mù về quan niệm adapter, sau khoản thời gian code thì đổ vỡ lẽ ra không còn.

Chúng ta tạo thành một class new có tên là DataAdapter cùng mang lại nó extends từ bỏ BaseAdapter:

*

Các các bạn thấy có lỗi đúng không? Không sao, là trên bọn họ chưa viết các method bắt buộc implement thôi. Vào menu Code > Implement Methods… (ghi nhớ đặt loài chuột trong kăn năn lệnh của class DataAdapter):

*

Hoặc một biện pháp không giống là đặt nhỏ trỏ chuột thân cái báo lỗi cùng dìm Alt+Enter > Implement Methods:

*

Cửa sổ Select Methods khổng lồ implement chỉ ra, chọn toàn bộ 4 method cùng thừa nhận OK:

*

Và họ bao gồm class form sơ bộ như sau:

package com.saigonmachinco.com.vn.listviewexample;import game android.view.View;import game android.view.ViewGroup;import game android.widget.BaseAdapter;public class DataAdapter extends BaseAdapter
Override public View getView(int i, View view, ViewGroup viewGroup) return null; Bước 5: Để có thể áp dụng Adapter thì chúng ta bắt buộc truyền cho class này tài liệu dạng danh sách hoặc mảng (ở đây chúng ta sử dụng mảng, xem xét loại String<> items sinh hoạt bước trước), và truyền qua constructor của nó:

private String<> items;public DataAdapter(String<> items) this.items = items;Tiếp theo, làm việc hàm getCount(), hàm này vẫn trả về con số phần tử hiển thị trong list. Con số này cần buộc phải nhỏ tuổi rộng hoặc bằng con số phần tử vào mảng nguồn vào, nếu không có khả năng sẽ bị lỗi IndexOutOfBoundException:


Overridepublic int getCount() return items.length;Code không thiếu thốn của cả class DataAdapter.javapackage com.saigonmachinco.com.vn.listviewexample;import game android.ứng dụng.Activity;import app android.view.LayoutInflater;import apk.view.View;import android.view.ViewGroup;import apk.widget.BaseAdapter;import game android.widget.TextView;public class DataAdapter extends BaseAdapter private Activity activity; private String<> items; public DataAdapter(Activity activity, String<> items) this.activity = activity; this.items = items;
Override public View getView(int i, View view, ViewGroup viewGroup) // Gọi layoutInflater ra nhằm bắt đầu ánh xạ view với data. LayoutInflater inflater = activity.getLayoutInflater(); // Đổ tài liệu vào biến View, view này chính là hầu hết gì phía bên trong item_name.xml view = inflater.inflate(R.layout.item_name, null); // Đặt chữ mang lại từng view vào danh sách. TextView tvName = (TextView) view.findViewById(R.id.tv_name); tvName.setText(items); // Trả về view hiệu quả. return view; Và ở đầu cuối setup adapter mang lại ListView tại MainActivity.java:

package com.saigonmachinco.com.vn.listviewexample;import apk.os.Bundle;import android.tư vấn.v7.app.AppCompatActivity;import android.widget.ArrayAdapter;import app android.widget.ListView;public class MainActivity extends AppCompatActivity private ListView listView;
Override protected void onCreate(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); String<> items = "Doan Ngoc Giau", "Pđam mê Kyên Long", "Kteam"; listView = (ListView) findViewById(R.id.list_view); DataAdapter adapter = new DataAdapter(this, items); listView.setAdapter(adapter); Và bọn họ được nhỏng sau:

*

Ok!tạm thời là điều này, nội dung bài viết này sẽ tạm dừng tại phía trên với những kỹ năng và kiến thức cơ bản tuyệt nhất về ListView. Chúng ta có một số lưu ýnhư sau:

ListView cũng chỉ là một trong View thông thường.Để hiển thị list những bộ phận, ListView đề xuất một mảng hoặc một danh sách những dữ liệu đầu vào (model chẳng hạn).Chúng ta ko truyền trực tiếp mảng giỏi menu đến ListView cơ mà buộc phải truyền qua Adapter.Adapter là cầu nối thân dữ liệu với ListView.

Kết luận

Qua bài bác này họ đang ráng được ListView là gì, chúng ta đề nghị làm cái gi để ListView hoàn toàn có thể hiển thị danh sách các String đơn giản và dễ dàng.

Bài sau chúng ta đang quay trở về xem thêm một chút về ListView, và RECYCLERVIEW– một một số loại View đựng list khác, bọn họ mặt hàng với ListView tuy vậy giỏi rộng, dễ tùy thay đổi rộng không ít. Trong khi là vẻ ngoài ViewHolder vận dụng được cho tất cả ListView cùng RecyclerView nhằm mục đích tăng vận tốc lúc áp dụng list.

Cảm ơn các bạn sẽ quan sát và theo dõi nội dung bài viết. Hãy vướng lại comment hoặc góp ý của mình để phát triển nội dung bài viết tốt hơn. Đừng quên “Luyện tập – Thử thách – Không hổ thẹn khó”.

Tải xuống


Tài liệu

Nhằm phục vụ mục đích tiếp thu kiến thức Offline của xã hội, Kteam hỗ trợ chức năng tàng trữ ngôn từ bài học kinh nghiệm ListView và Custom Adapter bên dưới dạng tệp tin PDF trong links dưới.

Xem thêm: Review 4 Kem Zale Có Tác Dụng Gì Mua Ở Đâu Và Giá, Tác Dụng Và Giá Thành Của Kem Zale Thế Nào

Bên cạnh đó, chúng ta cũng có thể search thấy các tài liệu được góp sức từ cộng đồng sinh sống mục TÀI LIỆU bên trên thư viện saigonmachinco.com.vn.com

Đừng quên like cùng share nhằm ủng hộ Kteam với tác giả nhé!

*

Thảo luận

Nếu các bạn tất cả ngẫu nhiên khó khăn giỏi vướng mắc gì về khóa đào tạo và huấn luyện, chớ e dè đặt thắc mắc vào phần BÌNH LUẬN bên dưới hoặc vào mục HỎI & ĐÁPhường trên thư viện saigonmachinco.com.vn.com nhằm cảm nhận sự cung ứng tự cộng đồng.


Chuyên mục: Tài liệu