Diễn đàn rao vặt Tuổi trẻ
Hướng dẫn về spinner trên android FfWzt02
Diễn đàn rao vặt Tuổi trẻ
Hướng dẫn về spinner trên android FfWzt02
 


#1

28.06.17 11:16

avatar

tuan11nguyen

Thành viên gắn bó
0988485689 https://www.facebook.com/
Thành viên gắn bó
Spinner
Spinner là View cho phép chúng ta chọn 1 item trong 1 danh sách các item.

Ví dụ 1:

Xem các bài lập trình android

Trong file main.xml, chúng ta khai báo thẻ Spinner và thẻ TextView. Danh sách các item của Spinnersẽ được khai báo trong file strings.xml.



Trong file strings.xml chúng ta khai báo tên biến spn_title dùng khiến tiêu đề cho Spinner, biến dlangs có kiểu string-array là danh sách các item cho Spinner.





public class MainActivity extends Activity implements OnItemSelectedListener


Item được chọn trong Spinner sẽ được dùng khiến text của TextView.

public class MainActivity extends Activity implements OnItemSelectedListener

khi có Item nào được chọn thì Spinner sẽ giải phóng sự kiện, chúng ta implement giao diện OnItemSelectedListerner để bắt lấy sự kiện chậm tiến độ, có 2 phương thức phải override lại là onItemSelected() và onNothingSelected().

Spinner spn = (Spinner) findViewById(R.id.spn);
spn.setOnItemSelectedListener(this);

Để các phương thức trên có thể bắt sự kiện thì chúng ta dùng phương thức setOnItemSelectedListener() của Spinner và truyền vào đối tượng có override các phương thức chậm tiến độ.

Trong phương thức onItemSelected() chúng ta lấy đối tượng item đang được chọn bằng phương thức onItemAtPosition(), sau chậm tiến độ chuyển thành String rồi gán khiến text cho TextView.
Ví dụ 2
Trong thí dụ này chúng ta sẽ kiểu dáng lại như thí dụ trên, chỉ khác là các item sẽ được thêm vào trong Spinner trong khoảng file java chứ không nhập cứng trong khoảng file resource nữa.




Trong file main.xml chúng ta có 2 View là Spinner và TextView. Spinner ở đây không được thiết lập thuộc tính src nữa.



Trong file strings.xml chúng ta bỏ danh sách item đi, chỉ còn biến lưu tiêu đề của Spinner.


bên cạnh đó bạn có thể Đánh giá học lập trình miễn phí

Trong file MainActivity.java chúng ta thiết lập dữ liệu cho Spinner và override các phương thức lắng nghe sự kiện như thí dụ trên.

List lst = new ArrayList();

lst.add("Python");
lst.add("Java");
lst.add("C++");
lst.add("Ruby");

đầu tiên chúng ta dùng List để tạo 1 danh sách các item sẽ được lưu vào Spinner.

ArrayAdapter da = new ArrayAdapter(this,

android.R.layout.simple_spinner_item, lst);

Tiêp theo chúng ta dùng 1 đối tượng ArrayAdapter, đối tượng này có tác dụng kết liên dữ liệu giữa Spinner và List, mỗi khi List có sự đổi thay, chả hạn như thêm hoặc xóa bớt item thì Spinner cũng sẽ tự động thêm/bớt các item chậm tiến độ.


spn.setAdapter(da);

có đối tượng ArrayAdapter rồi thì chúng ta phải thiết lập adapter chậm tiến độ cho Spinner.

SeekBar
SeekBar hiển thị 1 thanh trượt và 1 chiếc nút trên thanh trượt chậm tiến độ cho phép chúng ta kéo qua kéo lại trong 1 khoảng giá trị số nào chậm tiến độ, mỗi khi nút trên thanh trượt đổi thay thì SeekBar sẽ giải phóng sự kiện và chúng ta bắt sự kiện chậm tiến độ bằng bí quyết dùng giao diện OnSeekBarChangeListener.

Ví dụ:


Ở đây chúng ta bề ngoài 1 SeekBar và 1 TextView, TextView được dùng để hiển thị giá trị của SeekBar. Khoảng giá trị mặc định của SeekBar là trong khoảng 0 đến 100. Trong chậm tiến độ chúng ta có thể thiết lập giá trị max bằng thuộc tính android:max, bên cạnh đó chúng ta chẳng thể thiết lập giá trị min được.



Trong file strings.xml chúng ta khai báo biến textview_value khiến giá trị khởi tạo ban đầu cho TextView.




Đoạn text trong TextView dùng chung có giá trị của SeekBar.

public class MainActivity extends Activity implements
OnSeekBarChangeListener

Lớp MainActivity implement giao diện OnSeekBarChangeListener. Giao diện này có 3 phương thức cần phải override là onProgressChanged(), onStartTrackingTouch() và onStopTrackingTouch(). Ở đây chúng ta chỉ cần dùng đến phương thức đầu tiên.

SeekBar sb = (SeekBar) findViewById(R.id.sbId);
sb.setOnSeekBarChangeListener(this);

Chúng ta lấy đối tượng SeekBar và gắn listener cho nó là đối tượng Activity bây giờ vì đối tượng này đã implement giao diện OnSeekBarChangeListener.

tv = (TextView) findViewById(R.id.tvId);
String val = this.getString(R.string.textview_value);
tv.setText(val);

Sau chậm tiến độ chúng ta lấy giá trị của biến textview_value rồi dùng khiến text của TextView.
Bạn nào để ý đến mô hình mvc


khi chúng ta kéo nút trên SeekBar, phương thức onProgressChanged() sẽ được gọi, giá trị đổi thay được truyền trong tham số progress, chúng ta dùng tham số này khiến text của TextView.

Quyền hạn của bạn

   
Bạn không có quyền trả lời bài viết