Phát triển Android khi sử dụng Eclipse và các widget
của Android (kỳ 2)
Tóm tắt: Hướng dẫn này dành
cho bất cứ ai quan tâm đến việc
bắt đầu phát triển Android trên
Eclipse bằng cách sử dụng trình
cắm thêm (plug-in) các công cụ phát triển Android
(ADT). Hướng dẫn này mang đến cái nhìn thấu đáo
về các tính năng nổi bật của một ứng dụng Android,
cùng với lời giải thích ngắn gọn về các thành phần
cơ bản của nó. Quá trình Android được giới thiệu để
phát triển các Giao diện người dùng (UI) phong phú
cho các ứng dụng, như các widget (tiện ích). Cuối
cùng, nó giới thiệu một cách dễ dàng để kiểm thử các
ứng dụng đã phát triển bằng cách triển khai ứng
dụng đó trên một trình mô phỏng thiết bị Android có
kèm trong bộ công cụ phát triển phần mềm (SDK).
Tiếp theo kỳ 2 như sau:
7. Chạy ứng dụng trên trình mô phỏng thiết bị
Để triển khai và chạy ứng dụng này, bạn cần phải xác
định một cấu hình chạy. Chọn Open > Run > Dialog
hoặc phím tắt trên thanh công cụ trong Eclipse và
chọn ứng dụng Android. Nhấn New và điền vào tên
của cấu hình chạy này. Chỉ rõ tên dự án của bạn và
Để biết thông tin về các widgetHướng dẫn trực quan
về các widget Giao diện đồ họa người dùng của
Android (GUI Android Widget) là hướng dẫn tốt
nhất. Tuy nhiên, hãy thận trọng với các sai lệch có
thể xuất hiện ở đó do những thay đổi nhanh chóng
của nền tảng Android. Một ví dụ rõ ràng là việc sử
dụng id như là một thuộc tính của trình định danh cho
một widget trong tệp main.xml trong hướng dẫn nêu
trên. Trong nền tảng Android mới nhất, nên sử dụng
tên phân biệt đầy đủ android:id.
Hình 7. Hệ thống phân cấp các widget của
Android
Một ứng dụng mẫu có sử dụng widget
Bây giờ chúng ta sẽ thay đổi ứng dụng hiện có của
mình để trông giống như Hình 8. Mục đích của ví dụ
này là làm cho độc giả quen thuộc với việc sử dụng
của một số widget cơ bản như textView, editText,
Button, và Toast trong một ứng dụng thực tế.
Ứng dụng của chúng ta sẽ bao gồm một thanh tiêu đề
với thông điệp "WELCOME!!!" Nó sẽ có ba widget
textView bắt đầu từ trên xuống, sắp xếp theo chiều
dọc: widget thứ nhất nói "Hello World, how're you
(Chào thế giới, Bạn thế nào)?" theo phông chữ mặc
định, widget tiếp theo là "Welcome to my first
Android app (Chào mừng đến với ứng dụng Android
đầu tiên của tôi)" với chữ serif nghiêng, canh chính
giữa, có nền trắng; và widget thứ ba nói "Type
anything and press the button (Gõ vào gì đó và nhấn
nút)" với chữ đậm, độ rộng bằng nhau, có nền màu
<string name="app_name">Hello
Android</string>
<string name="title">WELCOME!!!</string>
<string name="mainText">Welcome to my first
android app</string>
<string name="subText">Type anything and press
the button</string>
<color name="White">#FFFFFF</color>
<color name="Red">#FF0000</color>
</resources>
Chúng ta thay đổi chuỗi ký tự "hello" để chứa "Hello
World, how're you?" Lưu ý ở đây phải có ký tự thoát
('\') đối với dấu nháy đơn. Chúng ta cũng định nghĩa
hai chuỗi mới: mainText và subText, và các màu
trắng và đỏ.
Tệp main.xml
Hãy sử dụng tab bố trí của tệp main.xml để kéo và
thả hai widget textView: một widget editText và một
widget nút ấn. Sau đó chúng ta sẽ sử dụng tab các
thuộc tính trong tệp main.xml để chỉnh sửa các thuộc
tính cho mỗi widget.
Liệt kê 3. Tệp main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
</TextView>
<EditText
android:text="Enter text here"
android:id="@+id/EditText01"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</EditText>
<Button
android:text="Click me!"
android:id="@+id/Button01"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</Button>
</LinearLayout>
Với tệp này, chúng ta đã xác định giao diện giao diện
người dùng của mình. Bây giờ chúng ta phải liên kết
mã hành động của mình với nó.
Tệp MainActivity.java
Đây là tệp thực sự liên kết giao diện người dùng với
mã triển khai thực hiện. Cũng giống như ứng dụng
HelloWorld, chúng ta sử dụng phương thức
Activity.onCreate(Bundle) để trang trí tất cả các phần
tử UI trên màn hình. Phương thức onClick(View) bị
ghi đè này sẽ chứa chức năng nhấn nút, nơi văn bản
đầu vào của người dùng sẽ được đọc và được hiển thị
trên màn hình trong một widget toast.
Liệt kê 4. Tệp MainActivity.java
button.setOnClickListener(new
Button.OnClickListener(){
@Override
public void onClick(View v) {
//get the String entered into the editText
widget
CharSequence editText = eText.getText();
//display the toast
Toast.makeText(MainActivity.this,
editText, Toast.LENGTH_LONG).show();
}
});
}
}
Khi sử dụng mã này, chúng ta nhận được các ứng
dụng như trong Hình 8.
9. Sử dụng widget : Một ứng dụng mẫu
Trong phần này, chúng ta sẽ tạo một ứng dụng mẫu
(xem hình 9a, 9b) để hiển thị tất cả các địa chỉ liên
lạc trong danh bạ điện thoại bằng cách sử dụng
widget listView. Mục đích của ví dụ này là để giới
thiệu không chỉ là việc sử dụng widget listView mà
còn cho thấy dữ liệu điện thoại có thể được tìm nạp
như thế nào khi sử dụng các lớp ContentProvider và
thể đoán ngay rằng widget listView là một danh sách
các widget textView. Widget listView sử dụng các
mẫu thiết kế của bộ tiếp hợp để kết nối dữ liệu (trong
trường hợp này là các địa chỉ liên lạc) và một khung
nhìn dữ liệu (trong trường hợp này là một textView
cho listView này. Mọi thao tác nhấn trên listView có
thể được bắt giữ lại bằng cách thực hiện phương thức
AdapterView.OnItemClickListener().
Trước khi tiếp tục, chúng ta nên có một số các địa chỉ
liên lạc được lưu trong phần các địa chỉ liên lạc của
trình mô phỏng thiết bị của Android (AVD). Điều
này có thể được thực hiện bằng cách nhấn vào
Contacts (Các địa chỉ liên lạc) trên màn hình chủ của
AVD, sau đó nhấn vào Menu để có tùy chọn Add
Contacts (Thêm các địa chỉ liên lạc). Phần Favorites
(Các địa chỉ liên lạc ưa thích) cho biết cách đánh dấu
một địa chỉ liên lạc như là ưa thích/được đánh dấu
sao.
Hình 9a. Ứng dụng các địa chỉ liên lạc hiển thị tất cả
các địa chỉ liên lạc trong một widget listView Hình 9b. Ứng dụng các địa chỉ liên lạc hiển thị tất cả
các địa chỉ liên lạc được đánh dấu sao trong một
widget listView khi đánh dấu chọn vào hộp kiểm tra
hiển thị các địa chỉ liên lạc có đánh dấu sao
Bây giờ chúng ta sẽ định nghĩa một vài chuỗi.
Liệt kê 5. Các chuỗi được định nghĩa trong tệp
xmlns:android=" /> android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:id="@+id/selectedContact"
android:padding="10dp"
android:textSize="20sp"
android:textStyle="italic"
android:typeface="serif"
android:background="@color/Blue"
android:textColor="@color/White"
android:text="@string/selectedEntry"/>
<ListView
android:id="@+id/contactsListView"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_weight="1">
</ListView>
<CheckBox android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/showStarred"
android:text="@string/showStarred"/>
</LinearLayout>