Tải bản đầy đủ
Hình 1-11 .ImageView và ImageButton

Hình 1-11 .ImageView và ImageButton

Tải bản đầy đủ

f. ListView
Được sử dụng để thể hiện một danh sách các thông tin theo từng cell. Mỗi cell
thông thường được load lên từ một file XML đã được cố định trên đó số lượng
thông tin và loại thông tin cần được thể hiện.
Để thể hiện được một list thông tin lên một screen thì cần phải có 3 yếu tố chính:


Data Source: Data Source có thể là một ArrayList, HashMap hoặc bất kỳ
một cấu trúc dữ liệu kiểu danh sách nào.



Adapter: Adapter là một class trung gian giúp ánh xạ dữ liệu trong Data
Source vào đúng vị trí hiển thị trong ListView. Chẳng hạn, trong Data
Source có một trường name và trong ListView cũng có một TextView để
thể hiện trường name này. Tuy nhiên, ListView sẽ không thể hiển thị dữ
liệu trong Data Source lên được nếu như Adapter không gán dữ liệu vào
cho đối tượng hiển thị.



ListView: ListView là đối tượng để hiển thị các thông tin trong Data
Source ra một cách trực quan và người dùng có thể thao tác trực tiếp trên
đó.

Hình 1-12 Minh hoạ cho một ListView
g. TextView
TextView ngoài tác dụng là để hiển thị văn bản thì nó còn cho phép định dạng
nội dung bằng thẻ html.
23

TextView textView = (TextView)findViewById(R.id.textView);
CharSequence styledText =
Html.fromHtml("This is some styled text");
textView.setText(styledText);
Nội dung TextView cũng có thể được định dạng bằng thẻ html ngay trong XML.
h. EditText
Trong Android đối tượng EditText được sử dụng như một TextField hoặc một
TextBox.
android:id="@+id/EditText01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textStyle="bold"
android:textSize="20dip"
android:textColor="#000000"
android:text="Hello Android!"
android:singleLine="true"
android:inputType="textCapWords"/>
Các thuộc tính cần chú ý sử dụng EditText đó là:
android:inputType = “…” sử dụng để xác định phương thức nhập cho EditText.
Chẳng hạn như khi bạn muốn một ô để nhập password hay một ô để nhập Email
thì thuộc tính này sẽ làm điều đó.
android:singleLine = “true” EditText của bạn sẽ trở thành một TextField, ngược
lại sẽ là TextBox.
i. CheckBox
Nhận 2 giá trị true hoặc false. Đối tượng CheckBox cho phép chọn nhiều item
cùng một lúc.
Khai báo: CheckBox cb = new CheckBox(Context …);
XML:

24

android:id="@+id/CheckBox01"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Check me"
android:checked="true"/
l. Quick Search Box
Một trong những tính năng mới trong phiên bản Android 1.6 đó là Quick Search
Box. Đây là khuôn khổ tìm kiếm mới trên toàn hệ thống Android, điều này làm
cho người dùng có thể nhanh chóng tìm kiếm bất cứ thứ gì có trên chiếc điện
thoại Android của họ và cả các tài nguyên trên web khi họ đang online. Nó tìm
kiếm và hiển thị kết quả tìm kiếm ngay khi bạn đang gõ. Nó cũng cung cấp các
kết quả từ các gợi ý tìm kiếm web, danh sách doanh nghiệp địa phương, và thông
tin khác từ Google, chẳng hạn như báo giá cổ phiếu, thời tiết, và tình trạng
chuyến bay. Tất cả điều này có sẵn ngay từ màn hình chủ, bằng cách khai thác
trên Quick Search Box (QSB).

25

Hình 1-13Minh hoạ Quick Search Box
1.5.8.Bắt sự kiện trong Android:
Một khi bạn đã thêm một số Views/widgets đến giao diện, có thể bạn
muốn biết về sự tương tác của người dùng với họ, vì vậy bạn có thể thực hiện
hành động. Để được thông báo về UI events người dùng, bạn cần phải làm một
trong hai điều:
Xác định một sự kiện nghe và đăng ký nó với các View.. Các class View có
chứa một tập hợp các giao diện lồng nhau đặt tênOnListener, đều
có một phương pháp gọi lại được gọi là On() .


dụ.View.OnClickListener (để

xử



"nhấp

chuột"

trên

một

View), View.OnTouchListener ( để xử lý các sự kiện màn hình cảm ứng trong
một View), và View.OnKeyListener (để xử lý thiết bị ép quan trọng trong một
View). Vì vậy nếu bạn muốn View của bạn được thông báo khi nó là " clicked"
(chẳng hạn như khi một nút được chọn), thực hiện và xác định OnClickListener
của nó gọi method onClick() (nơi bạn thực hiện các hành động sau khi nhấp
chuột), và đăng ký nó vào Xem với setOnClickListener()
Ghi đè một callback method hiện cho View. Đây là những gì bạn nên làm
gì khi bạn đã thực hiện lớp View của riêng bạn và muốn lắng nghe cho các sự
kiện cụ thể xảy ra trong nó. Ví dụ về các sự kiện bạn có thể xử lý bao gồm màn
hình là touched onTouchEvent() khi trackball là di chuyển onTrack
ballEvent() hoặc khi một phím trên thiết bị được nhấn onKeyDown(). Điều này
cho phép bạn xác định các hành vi mặc định cho từng sự kiện bên trong tuỳ
chỉnh View của bạn và xác định xem sự kiện này cần được thông qua ngày để
View con khác. Một lần nữa, đây là những callbacks View class, do đó, cơ hội
duy nhất của bạn để xác định đó là khi bạn xây dựng một phần tùy chỉnh.
1.5.9.Menu:
Menu đơn có một phần quan trọng của giao diện người dùng trong một
ứng dụng. Menus cung cấp một giao diện đáng tin cậy cho thấy rằng các chức
năng ứng dụng và cài đặt. Trong trình đơn ứng dụng phổ biến nhất là tiết lộ bằng
cách bấm phím MENU trên thiết bị. Tuy nhiên, bạn cũng có thể thêm Context

26

Menus, có thể hiển thị khi người sử dụng máy nhấn và nắm giữ phím trên một
mục. Thực đơn cũng được hệ thống phân cấp cấu trúc bằng cách sử dụng một
xem, nhưng bạn không xác định cấu trúc này cho mình.
Thay vào đó, bạn xác định onCreateOptionsMenu() or
onCreateContext Menu() gọi method cho hoạt động của bạn và tuyên bố
các mục mà bạn muốn bao gồm trong menu của bạn. Trong một thời gian thích
hợp, Android sẽ tự động tạo ra hệ thống View phân cấp cần thiết cho menu, và
rút ra mỗi trong mỗi menu items đó.
Menus cũng xử lý các sự kiện riêng của nó, do đó không cần phải đăng ký
sự kiện listeners trên các item trong menu của bạn. Khi một item trong menu của
bạn được chọn, onOptionsItemSelected() hoặc
onOptionsItemSelected(),onContext
ItemSelected() method onContextItemSelected() sẽ được gọi bằng framework.
Và cũng giống như layout có tùy chọn để khai báo các menu item trong một tệp
tin XML.
Có 2 cách tạo một MenuOptions:


Tạo bằng code:

public class Main extends Activity {
private int searchBtnId = Menu.FIRST;
private int scheduleBtnId = Menu.FIRST + 1;
private int playBtnId = Menu.FIRST + 2;
private int stopBtnId = Menu.FIRST + 3;
private int group1Id = 1;
private int group2Id = 2;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.setContentView(R.layout.main);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {

27