Header ads

Header ads
» » Spinner

Spinner Trong Android

Spinner trong Android tương tự như ComboBox trong Java/C#, cho phép bạn chọn một item từ danh sách thả xuống. Hình bên dưới trình bày cách spinner hiển thị



Spinner  được liên kết với AdapterView. Vì vậy, chúng ta cần phải sử dụng một trong các lớp adapter để kết nối dữ liệu cho Spinner.
Lớp Spinner là lớp con của lớp AsbSpinner

 


Spinner code trong XML:

  <Spinner  android:id="@+id/simpleSpinner "  android:layout_width="fill_parent"  android:layout_height="wrap_content" />

Để kết nối dữ liệu cho spinner chúng ta cần một lớp Adapter. Thông thường một Spinner chỉ là chuỗi dữ liệu nên chúng ta chỉ cần sử dụng ArrayAdpater. Để hiển thị một Spinner phức tạp hơn gồm hình và chuỗi chúng ta phải tùy biến lại Adpater.

ArraryAdapter:
Một ArraryAdapter là một đối tượng của một lớp cài đặt giao diện Adapter. Nó đóng vai trò như là một liên kết giữa một tập hợp dữ liệu và một Adapter View, một đối tượng của một lớp thừa kế lớp trừu tượng AdapterView. Tập hợp dữ liệu có thể là bất cứ điều gì mà trình bày dữ liệu một cách có cấu trúc. Mảng các đối tượng List và các đối tượng Cursor thường sử dụng bộ dữ liệu. 

Cú pháp tạo ArrayApdater:

  ArrayAdapter(Context context, int resource, int textViewResourceId, T[] objects)

Xem chi tiêt về ArrayAdapter


Các sự kiện thường dùng trong Spinner
setOnItemSelectedListener
 Sự kiện này xảy ra khi người dùng click chọn Spinner. Xem ví dụ sau:

  spnMobile.setOnItemSelectedListener(new OnItemSelectedListener() {    			@Override  			public void onItemSelected(AdapterView<?> arg0, View arg1,  					int arg2, long arg3) {  				// TODO Auto-generated method stub  				Toast.makeText(getApplication(), "Bạn đã chọn mục:"+mobilePhones[arg2], Toast.LENGTH_LONG).show();  				  			}    			@Override  			public void onNothingSelected(AdapterView<?> arg0) {  				// TODO Auto-generated method stub  				  			}  		});
  • onItemSelected: gọi phương thức này được gọi khi có một sự kiện chọn item nào đó. Trong đó, tham số thứ 3 arg2 là vị trí cùa Spinner, tham số thứ 4 arg3 là id của mỗi dòng của Spinner.
  • onNothingSelected: phương thức  này được gọi khi click vào Spinner mà không chọn item nào cả.

Ví dụ: Trong ví dụ này chúng ta sẽ làm ứng dụng gồm có một Spinner. Trước tiên, chúng ta tạo 1 mảng chuỗi dữ liệu. Tiếp theo, chúng ta thiết lâp sự kiện cho Spinner khi người sử dụng chọ mục dữ liệu sẽ hiển thị giá trị ra màn hình thông qua đối tượng Toast. Tiến hành tạo project, vào thư mục  res /layout -> activity_main.xml thiết kế giao diện sau:


Bước 1: Tạo một project tên là SpinnerFile->New->Android Application Project điền các thông tin ->Next ->Finish

Bước 2: Mở res -> layout -> xml (hoặc) activity_main.xml và thêm code trong Relaytive Layout.

  <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"      xmlns:tools="http://schemas.android.com/tools"      android:layout_width="match_parent"      android:layout_height="match_parent"      android:paddingBottom="@dimen/activity_vertical_margin"      android:paddingLeft="@dimen/activity_horizontal_margin"      android:paddingRight="@dimen/activity_horizontal_margin"      android:paddingTop="@dimen/activity_vertical_margin"      tools:context="hiepsiit.com.spinnerarrayadapter.MainActivity" >        <Spinner          android:id="@+id/spinner1"          android:layout_width="fill_parent"          android:layout_height="wrap_content"          android:layout_alignParentTop="true"          android:layout_marginTop="92dp" />    </RelativeLayout>

Bước 3: Mở src -> package -> MainActivity.java
Trong bước này chúng ta khởi tạo Spinner.  Tiếp theo, chúng ta tạo 1 mảng dữ liệu và kết nối Spinner thông qua đối tượng ArrayAdapter. Trong bước này chúng ta cũng thiết lập sự kiện setOnItemSelectedListener(new OnItemSelectedListener() ) cho Spinner.

 

  package hiepsiit.com.spinner;    import android.app.Activity;  import android.os.Bundle;  import android.view.Menu;  import android.view.MenuItem;  import android.view.View;  import android.widget.AdapterView;  import android.widget.AdapterView.OnItemSelectedListener;  import android.widget.ArrayAdapter;  import android.widget.Spinner;  import android.widget.Toast;    public class MainActivity extends Activity {  	String mobilePhones[]={"Nokia","Samsung","Iphone","HTC","BPhone","MobileStar"};  	Spinner spnMobile;  	@Override  	protected void onCreate(Bundle savedInstanceState) {  		super.onCreate(savedInstanceState);  		setContentView(R.layout.activity_main);  		spnMobile	=	(Spinner) findViewById(R.id.spinner1);  		ArrayAdapter	adapter	=	new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, mobilePhones);  		adapter.setDropDownViewResource(android.R.layout.select_dialog_singlechoice);  		spnMobile.setAdapter(adapter);  		  		spnMobile.setOnItemSelectedListener(new OnItemSelectedListener() {    			@Override  			public void onItemSelected(AdapterView<?> arg0, View arg1,  					int arg2, long arg3) {  				// TODO Auto-generated method stub  				Toast.makeText(getApplication(), "Bạn đã chọn mục:"+mobilePhones[arg2], Toast.LENGTH_LONG).show();  				  			}    			@Override  			public void onNothingSelected(AdapterView<?> arg0) {  				// TODO Auto-generated method stub  				  			}  		});  		  	}    }  

Download ví dụ

Ứng dụng này được phát triển bởi adt bundleandroid 4.2 sử dụng minimum sdk 11  and target sdk 21.


Kết quả khi chạy ứng dụng 

Click vào Spinner chọn 1 mục:


 

 



Cập nhật công nghệ từ Youtube tại link: https://www.youtube.com/channel/UCOxeYcvZPGf-mGLYSl_1LuA/videos
Để tham gia khóa học công nghệ truy cập link: http://thuvien.hocviendaotao.com
Mọi hỗ trợ về công nghệ email: dinhanhtuan68@gmail.com

About Học viện đào tạo trực tuyến

Xinh chào bạn. Tôi là Đinh Anh Tuấn - Thạc sĩ CNTT. Email: dinhanhtuan68@gmail.com .
- Nhận đào tạo trực tuyến lập trình dành cho nhà quản lý, kế toán bằng Foxpro, Access 2010, Excel, Macro Excel, Macro Word, chứng chỉ MOS cao cấp, IC3, tiếng anh, phần mềm, phần cứng .
- Nhận thiết kế phần mềm quản lý, Web, Web ứng dụng, quản lý, bán hàng,... Nhận Thiết kế bài giảng điện tử, số hóa tài liệu...
HỌC VIỆN ĐÀO TẠO TRỰC TUYẾN:TẬN TÂM-CHẤT LƯỢNG.
«
Next
Bài đăng Mới hơn
»
Previous
Bài đăng Cũ hơn