Cập nhật ListView trong Android

Trang chủ Lập trình Phát triển app android Custom listview trong android [Bài 1]
  • Lập trình
  • Phát triển app android

Custom listview trong android [Bài 1]

Bởi
admin
-
13/04/2019
5306
0
Facebook
Twitter

Custom listview trong android sẽ trình bày cho các bạn cách thay đổi layout cho listview. Như chúng ta đã biết, listview là một thành phần dùng để nhóm nhiều mục [item] và hiển thị chúng trong danh sách cuộn theo chiều dọc.

Danh sách các mục được tự động chèn vào danh sách bằng cách sử dụng một adapter chứa nội dung từ một nguồn như một mảng hoặc cơ sở dữ liệu.

Một adapter là một cầu nối giữa thành phần giao diện người dùng và nguồn dữ liệu. Adapter chứa dữ liệu và chuyển dữ liệu này đến các thành phần nhưspinner, list view, grid view,

Android cung cấp nhiều subclass của Adapter hữu ích để lấy các loại dữ liệu khác nhau nhưArrayAdapter,BaseAdapter,CursorAdapter,

Custom listview trong android Array Adapter

Bạn có thể sử dụng adapter này khi nguồn dữ liệu của bạn là một mảng. Mặc định ArraryAdapter tạo một view cho mỗi phần tử trong mảng bằng phương thứctoString[] và đặt nội dung vào mộtTextView.

Giả sử bạn có một mảng string chứa dữ liệu được dùng để hiển thị trong mộtListView. Khởi tạo một đối tượng ArrayAdapter sử dụng phương thức khởi tạo, chỉ định layout và mảng string.

ArrayAdapter adapter = new ArrayAdapter[this,android.R.layout.simple_list_item_1,stringArray];

Đối với các ứng dụng di động thương mại, việc thiết kế giao diện sử dụng ListView chỉ hiển thị string với TextView là không hấp dẫn. VÌ vậy chúng ta cần phải tuỳ chỉnh layout cho ListView sao cho nó có thể hiển thị string kết hợp với icon, Trong bài giảng này, chúng tôi sẽ cho bạn thấy làm thế nào bạn có thể tạo ra một ListView với layout đã được tuỳ chỉnh.

Custom listview trong android Các bước thực hiện

Bước 1: Thiết kế layout dành cho ListView

Chuột phải layout -> chọn New -> chọn XML -> chọn Layout XML File

Nhập tên cho layout tại Layout File Name -> chọn Finish

Thiết kế layout sử dụng ImageView và TextView

Bước 2: Tạo lớp tên PlatfForm.java

Chuột phải package -> chọn New -> chọn Java Class -> nhập tên lớp tại Name -> chọn OK

Viết xử lý

public class PlatfForm { public int icon; public String title; public PlatfForm[int icon, String title] { this.icon = icon; this.title = title; } }

Bước 3: Tạo lớp tên PlatfFormAdapter kế thừa lớpArrayAdapter

public class PlatfFormAdapter extends ArrayAdapter { Context context; int layoutResourceId; List data; public PlatfFormAdapter[Context context, int resource, List data] { super[context, resource, data]; this.layoutResourceId = layoutResourceId; this.context = context; this.data = data; } @Override public View getView[int position, View convertView, ViewGroup parent] { View row = convertView; PlatfFormHolder holder = null; if[row == null] { LayoutInflater inflater = [[Activity]context].getLayoutInflater[]; row = inflater.inflate[layoutResourceId, parent, false]; holder = new PlatfFormHolder[]; holder.imgIcon = [ImageView]row.findViewById[R.id.ivPF]; holder.txtTitle = [TextView]row.findViewById[R.id.tvPF]; row.setTag[holder]; } else { holder = [PlatfFormHolder]row.getTag[]; } PlatfForm pf = data.get[position]; holder.txtTitle.setText[pf.title]; holder.imgIcon.setImageResource[pf.icon]; return row; } class PlatfFormHolder { ImageView imgIcon; TextView txtTitle; } }

Bước 4: Tạo activity tênPlatfFormActivity

Chuột phải package -> chọn New -> chọn Activity -> chọn Empty Activity -> nhập tên activity tại Activity Name -> chọn Finish

Thiết kế giao diện [Sử dụng ListView và đặt id là lvPF]

Viết xử lý cho activity

import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.ListView; import java.util.ArrayList; public class PlatfFormActivity extends AppCompatActivity { ListView lvPF; ArrayList data; @Override protected void onCreate[Bundle savedInstanceState] { super.onCreate[savedInstanceState]; setContentView[R.layout.activity_platf_form]; createData[]; PlatfFormAdapter adapter = new PlatfFormAdapter[this, R.layout.listview_my_layout, data]; lvPF = [ListView]findViewById[R.id.lvPF]; lvPF.setAdapter[adapter]; } private void createData[]{ data = new ArrayList[]; data.add[new PlatfForm[R.drawable.ic_android, "Android"]]; data.add[new PlatfForm[R.drawable.ic_ios, "iOS"]]; data.add[new PlatfForm[R.drawable.ic_windowsphone, "Windows Phone"]]; } }

Build và chạy

Custom listview trong android Tổng kết

  • Thiết kế layout cho ListView trong andoid
  • Hiển thị dữ liệu vào ListView trong andoid

Custom listview trong android Bài tập thực hành

Xây dựng ứng dụng đặt thức ăn và thức uống

MainActivity:

  • Chọn thức ăn [Button]
  • Chọn thức uống [Button]
  • Thoát [Button]
  • TextView ghi nhận thức ăn và thức uống mà người dùng đã chọn

FoodActivity: được gọi khi người dùng touch [chạm] vào nút lệnh Chọn thức ăn, giao diện dùng ListView liệt kê 4 bón ăn: Phở Hà Nội, Bún Bò Huế, Mì Quảng, Hủ Tíu Sài Gòn.Khi người dùng touch trên món nào thì Activity sẽ hoàn tất và gửi tên món ăn về MainActivity để cập nhật tên món ăn đã chọn.

DrinkActivity: được gọi khi người dùng touch vào nút lệnh Chọn đồ uống, giao diện dùng ListView liệt kê 4 thức uống: Pepsi, Heineken, Tiger, Sài gòn Đỏ.Khi người dùng touch trên đồ uống nào thì Activity sẽ hoàn tất và gửi tên thức uống về MainActivity để cập nhật tên đồ uống đã chọn.

Tải hình ảnh cho bài tập thực hành

  • TAGS
  • app android
  • custom listview
  • listview
Facebook
Twitter
Bài trướcGiáo trình phát triển app android
Bài tiếp theoTab trong android [Bài 2]

BÀI VIẾT LIÊN QUANXEM THÊM

Phát triển app android

Đa ngôn ngữ trong android [Bài 8]

Phát triển app android

Animation trong android [Bài 7]

Phát triển app android

Google cloud messaging cho android [Bài 6]

Phát triển app android

Camera trong android [Bài 5]

Phát triển app android

Media player trong android [Bài 4]

Phát triển app android

Sqlite trong android [Bài 3]

Bài viết nên xem

libGDX

Animation trong LibGDX [Bài 4]

Thiết kế web

Form trong html [Bài 3]


Đăng ký nhận TÀI LIỆU, KHÓA HỌC hoặc TƯ VẤN từ ADMIN

Họ và tên [Bắt buộc nhập]

Email [Bắt buộc nhập]

Số điện thoại [Bắt buộc nhập]

Bạn cần hỗ trợ về [Bắt buộc chọn]

Video liên quan

Chủ Đề