header-object

Tạo Custom View trong lập trình Android - Phần 3

 

Tiếp tục loạt bài về Custom-View trong lập trình Android. Bài này sẽ hướng dẫn các bạn bắt từ việc tạo ra một ListView đến việc tạo ra một Custom-ListView.

Phần demo cho nội dung trong bài viết này sử dụng ứng dụng đã được nhắc tới trong bài viết trước (Custom-View trong lập trình Android). Nếu bạn chưa đọc qua thì nên đọc các bài viết trước để có cái nhìn tổng quát hơn.

Trước tiên, mời bạn xem 2 hình ListView sau đây để biết lý do tại sao chúng ta lại phải có kiến thức về Custom-ListView trong lập trình Android.

vietnamtourism h3

  vietnamtourism h3

Với ListView mặc định của Android, ta chỉ có thể có được sự hiển thị đơn sơ như thế này

Để có một ListView sinh động hơn như trên đây. Chúng ta cần phải thực hiện xây dựng Custom-ListView

Ngoài các kiến thức liên quan đến Custom-ListView, bài viết này cũng sẽ đề cập đến:

  • Việc tạo một Activity mới và mở Activity này thông qua một Intent
  • Việc dùng xml để khai báo các thành phần Drawable

5. ListView trong lập trình Android

5.1 ListView với các mục không đổi

Ví dụ chúng ta sẽ tạo ra danh sách các danh nhân nổi tiếng của Việt Nam (Màn hình này sẽ hiện ra sau khi người dùng nhấn vào nút Vietnamese ở ứng dụng VietnamTourism đã xây dựng từ bài trước.

Hãy mở tập tin res/values/strings.xml và chỉnh sửa nó để chúng ta có được nội dung như sau:

<?xml version="1.0" encoding="utf-8"?>
<resources>
      <string name="app_name">VietnamTourism</string>
      <string name="menu_settings">Settings</string>
        
      <!-- mảng các danh nhân Việt Nam --> 
      <string-array name="vietnamese">
        <item >Hồ Chí Minh</item>
        <item >Trần Hưng Đạo</item>
        <item >Ngô Bảo Châu</item>
        <item >Nguyễn Huệ</item>
        <item >Võ Nguyên Giáp</item>
        <item >Hoàng Diệu</item>
        <item >Đặng Thái Sơn</item>
        <item >Nguyễn Trãi</item>
        <item >Trịnh Công Sơn</item>
        <item >Nguyễn Du</item>
      </string-array> 
   </resources>

Dễ dàng hiểu được nội dung của tập tin trên. Thẻ <string-array> cho phép chúng ta khai báo một mảng (Array) chứa các phần tử có giá trị là các chuỗi (String). mỗi thẻ <item> chứa giá trị là giá trị của một phần tử trong mảng.

Thuộc tính name của thẻ <string-array> chính là tên của mảng mà chúng ta đang khai báo.
Như ở trên chúng ta có một mảng chứa tên của 10 danh nhân. Mảng này có tên là vietnamese.

Tiếp tục chúng ta sẽ tạo ra giao diện (hay là còn được gọi là Layout trong lập trình Android)  cho màn hình chứa danh sách các danh nhân.

Trong thư mục res/laout tạo tập tin activity_vietnamese.xml và nhập vào nội dung cho nó như sau:

<?xml version="1.0" encoding="utf-8"?>
	<ListView 
  		xmlns:android="http://schemas.android.com/apk/res/android"
  		android:id="@+id/listViewVietnamese"
  		android:layout_width="match_parent"
		android:layout_height="wrap_content" >
	</ListView>

Trong tập tin xml này chúng ta đã đặt node gốc là một ListView có thuộc tính id là listViewVietnamese. Nó có độ rộng toàn màn hình (match_parent) và chiều cao tự động thay đổi theo nội dung chứa trong nó (wrap_content).

Mở tập tin này ở chế độ design (Graphical Layout) chúng ta sẽ thấy hiển thị dạng như sau:

vietnamtourism h1

Vẫn trong tập tin res/layout/activity_vietnamese.xml. Để chỉ định ListView này hiển thị mảng vietnamese (đã khai báo trong tập tin res/values/strings.xml ngay trên) chúng ta sử dụng thuộc tính entries của thẻ ListView như sau:

<?xml version="1.0" encoding="utf-8"?>
  <ListView 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/listViewVietnamese"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:entries="@array/vietnamese">
  </ListView>

Khá đơn giản. Tiếp sau chúng ta sẽ đi tạo thêm một Activity cho màn hình danh sách các danh nhân này.

Còn tiếp...

Đào Ngọc Giang

Thêm ý kiến


Security code
Làm mới


2

Facebook

Thống kê truy cập

Hiện có 380 khách đang truy cập
2546506