Custom ListView Android

Bài này Học Lập Trình sẽ huớng dẫn các bạn tùy chỉnh ListView theo ý của mình. Nhứng úng dụng thực tế của ListView đựoc sử dụng rất là rộng rãi.
Bài viết gồm 4 phần:
1. Xây dưng giao diện ở layout
2. Xử lý code ở Java
3. Chạy chuơng trình để xem thành quả nhé 
4. Download Source Code

Listview trên có 3 thành phần đó là : Tên Danh Mục, Phần miêu tả chi tiết, và ô checkBox bên cạnh phía trái để cho người dùng chọn.
1. Xây dưng giao diện ở layout
Trong Layout có:
list_view.xml

+ activity_main.xml
+ list_view.xml
CODE:
-<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" >

    <CheckBox
        android:id="@+id/cbDanhMuc"
        android:layout_width="wrap_content"
        android:layout_height="66dp"
        android:paddingRight="10sp"
        android:paddingTop="20sp"
        android:text="" />

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/tvDanhMuc"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:lines="1"
            android:textColor="#0101DF"
            android:textSize="15sp"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/tvMieuTa"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:lines="1"
            android:textColor="#DF013A"
            android:textSize="13sp" />
    </LinearLayout>

</LinearLayout>-
+ activity_main.xml
CODE:
-<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    tools:context="${packageName}.${activityClass}" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="StudyCoding.Net ?"
        android:textSize="20sp" />

    <ListView
        android:id="@+id/listDanhMuc"
        android:layout_width="fill_parent"
        android:layout_height="358dp"
        android:scrollbars="vertical" />

</LinearLayout>-
2. Xử lý code ở Java
+ DanhMuc
CustomDanhMuc
ListDanhMucAdapter
MainActivity

+ DanhMuc
CODE:
package com.studycoding.customlistviewandroid;

import java.io.Serializable;

public class DanhMuc implements Serializable{
  private String tenDanhMuc;
  private String moTa;
  private boolean checked;
  public DanhMuc(String tenDanhMuc){
  this.tenDanhMuc = tenDanhMuc;
  }
  public String getTenDanhMuc(){
  return this.tenDanhMuc;
  }
  public void setMoTa(String moTa) {
  this.moTa = moTa;
  }
  public String getMoTa() {
  return this.moTa;
  }
  @Override
  public boolean equals(Object o) {
  // TODO Auto-generated method stub
  if(o instanceof DanhMuc) {
  DanhMuc f = (DanhMuc)o;
  return this.tenDanhMuc.equalsIgnoreCase(f.getTenDanhMuc());
  }
  return false;
  }
  @Override
  public int hashCode() {
  // TODO Auto-generated method stub
  return this.tenDanhMuc.hashCode();
  }
  }
+ CustomDanhMuc
CODE:
package com.studycoding.customlistviewandroid;

import android.content.Context;
import android.view.LayoutInflater;
import android.widget.CheckBox;
import android.widget.LinearLayout;
import android.widget.TextView;

public class CustomDanhMuc extends LinearLayout {
  CheckBox cbDanhMuc;
  TextView tvDanhMuc;
  TextView tvMieuTa;
  Context context;
  public CustomDanhMuc(Context context) {
  super(context);
  // TODO Auto-generated constructor stub
  this.context = context;
  LayoutInflater li = (LayoutInflater)this.getContext()
  .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
  li.inflate(R.layout.list_view, this,true);
  
  cbDanhMuc = (CheckBox)findViewById(R.id.cbDanhMuc);
  tvDanhMuc= (TextView)findViewById(R.id.tvDanhMuc);
  tvMieuTa = (TextView)findViewById(R.id.tvMieuTa);
  }
 }
+ ListDanhMucAdapter
+ MainActivity
CODE:
package com.studycoding.customlistviewandroid;

import java.util.ArrayList;

import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.CheckBox;
import android.widget.TextView;

public class ListDanhMucAdapter extends ArrayAdapter{
  ArrayList array;
  int resource;
  CheckBox check;
  TextView tvDanhMuc;
  TextView tvMieuTa;
  Context context;
  DanhMuc DanhMuc;
  
  public ListDanhMucAdapter(Context context, int textViewResourceId,ArrayList array) {
  super(context, textViewResourceId,array);
  // TODO Auto-generated constructor stub
  
  this.context = context;
  this.resource = textViewResourceId;
  this.array = array;
  }
  public View getView(int position, View convertView, ViewGroup parent){
  View friendView = convertView;
  if(friendView ==null ){
  friendView = new CustomDanhMuc(getContext());
  }
  DanhMuc = array.get(position);
  if(DanhMuc !=null){
  tvDanhMuc = ((CustomDanhMuc)friendView).tvDanhMuc;
  tvMieuTa = ((CustomDanhMuc)friendView).tvMieuTa;
  check =((CustomDanhMuc)friendView).cbDanhMuc;
  // lay doi tuong friend va dua ra UI
  tvDanhMuc.setText(DanhMuc.getTenDanhMuc());
  tvMieuTa.setText(DanhMuc.getMoTa());
  
  }
  return friendView;
  }
  
 }

3. Chạy chuơng trình để xem thành quả nhé

4. Download Source Code

Custom Button trong Android




Share:

0 Nhận xét

Categories

. . . 1 [English | DVD] Trọn Bộ DVD Effortless English 3 Ajax 1 Andengine 3 Android 41 Android Studio Cài đặt và phím tắt thông dụng 1 API 1 App Android 1 Applicaiton Chat Multi Client 1 ASP.NET 9 Bài tập lập trình C/C++ có lời giải 1 Bài tập thuật toán C/C++ Và Tuyển tập đề thi olympic 2 Bắt đầu Học Lập Trình 4 Blogger 2 C/C++ 16 C# 21 Câu hỏi phỏng vấn Android 1 Cocos2d-JS 3 Cocos2d-x 3 Code game android 3 Công Cụ Lập Trình 13 Công nghệ 3 Cosos2d 1 CSS 1 Cuộc sống 15 Custom Button trong Android 2 Design Patterns 3 DevExpress 1 Đồ Án 1 DOREMON - NOBITA 2 Dự án 1 Ebook Android 1 English 8 Example Custom Android 1 facebook 1 Fedora 2 Freelancer 1 Game Android 4 Game Android AndEngine 1 Giới thiệu về Ajax 1 Hiệu ứng lắc trong android 1 Hướng dẫn cài đặt Mac OS trên VMware 1 Hướng dẫn download tài liệu miễn phí của website tailieu.vn 1 Hướng dẫn lập trình android 11 Hướng dẫn lập trình Windows Phone 3 Hướng đối tượng 2 Internet được khôi phục 1 Internet of Things 1 iOS 33 Java 9 Kiểm thử phần mềm 1 Kinh nghiệm lập trình 17 Kỹ Năng 1 Lập trình Android FPT Software Training 1 Lập Trình Game Đa Nền Tảng 2 Lập trình game mobile 2 Lập trình iOS FPT Software Training 1 Lập trình mạng 2 LẬP TRÌNH VIÊN CHUYÊN NGHIỆP TRÊN THIẾT BỊ DI ĐỘNG 2 Laptop 1 Libgdx 1 LinQ 3 Linux 6 Load CSDL SQL server ASP.NET 1 Lỗi Eclipse Ctr + Space 1 Mạng Xã Hôi 1 máy thật PC 1 Mbook TIN HỌC A 1 Mbook TIN HỌC B 1 mỗi bài 20 câu 1 NGAN-HANG-DE-THI-TRAC-NGHIEM-ASP.NET 1 Nguyên tắc ngón tay cái trong thiết kế ứng dụng cho điện thoại 1 Nhập môn lập trình C 14 Những câu hỏi phỏng vấn "xương" nhất 1 Những điểm mới kỳ thi THPT quốc gia 2015 1 Object C 1 Phần mềm 3 PHP 2 Phương pháp luyện thi TOEIC 1 Python 2 Review Game 1 SEO 4 Share Acc Fshare 1 Share VIP Miễn phí 1 Sinh viên mới tốt nghiệp – viết gì trong CV 1 Socket Android Client to PC Server C# 2 Socket Chat nhiều Client với server C# 2 Source code 4 Source code game C# 1 Source code game iOS 2 T3H-KHTN 7 Tài Liệu Android 7 Tài Liệu C# 4 Tài liệu hướng dẫn lập trình game với cocos2d-x 1 Tài Liệu iOS 7 Tài Liệu IT 3 Tài Liệu Java 2 Tài liệu Lập trình iOS Tiếng Việt đầy đủ TTTH đại học khoa học tự nhiên 1 Tài Liệu PHP 1 TÀI LIỆU THIẾT KẾ SỐ 1 Tài Liệu Windows Phone 1 Tạo Group Mail Google 1 Tạo hiệu ứng trong lập trình iOS 1 Tạo tên CoCaCoLa 1 Thắc mắc C/C++ 3 THẬP PHÂN sang NHỊ PHÂN không sử dụng MẢNG 1 Thiết kế giao diện Android - App Calculation Android Studio 1 Thiết kế giao diện phần mềm 1 Thuật ngữ cơ bản trong lập trình game AndEngine 1 Thuật toán 5 Thuật toán điều phối FCFS 1 Tiếng Anh 2 Tin Tức 1 Toàn bộ tài liệu ĐTVT 5 năm học 1 Tổng hợp những nơi người lái xe hay bị mắc lỗi tại TPHCM 1 Tutorials Android 2 Tuyến cáp quang AAG đã sửa xong 1 Unity 1 Vim 1 Visual Studyo 2013 1 WEB 1 Website nén JS và CSS tốt nhất 1 Websites Developer 2 Windows 10 Technical Preview 1 Windows Phone 5 WPF 1 XAMARIN 1 Xóa project appcompat_v 1