Blog chia sẻ kinh nghiệm lập trình Android
Xin chào các bạn, sau mấy ngày nghỉ tết hôm nay chúng ta lại tiếp tục quay trở lại với lập trình, bài hôm nay mình giới thiệu các bạn về một loại chọn phần tử nữa trong android đó là : spinner

Spinner là một l kiểu chọn một giá trị trong một mảng. giao diện dễ dùng. muốn có một spinner ta khai báo như sau ;
<Spinner
            android:id="@+id/spinner1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="#FFFFFF" />

Bài này mình tạo giao diện đơn giản như sau : 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#000003"
    android:orientation="vertical" >
<TextView
            android:id="@+id/textView1"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:gravity="center"
            android:textSize="30dp"
            android:text="SPRINNER" />

        <TextView
            android:id="@+id/tvxhow"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
             android:layout_gravity="center"
            android:gravity="center"
            android:textSize="24dp"
            android:hint="show" />

        <Spinner
            android:id="@+id/spinner1"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="#FFFFFF" />
 
</LinearLayout>



Để sử dụng được spinner vừa tạo ra, tại main java chúng ta làm như sau :




full code : các bạn xem chú thích sẽ hiểu code :

package hom.example.spinner;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.TextView;

public class MainActivity extends Activity {
     TextView tv1,tvshow;
     
     // khai báo spinner như các phần tử khác
     Spinner sp;
     // gán một mảng String cho spinner, đây là cách thêm kiểu tĩnh
     String[] item={"Ha Noi","Hai Phong","Quang Ninh"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tv1=(TextView) findViewById(R.id.textView1);
tvshow=(TextView) findViewById(R.id.tvxhow);
sp= (Spinner) findViewById(R.id.spinner1);

// khai báo một mảng ArrayAdapter có kiểu String với item là mảng string vừa khai báo ở trên
ArrayAdapter<String> adapter=new ArrayAdapter<String>
(this, android.R.layout.simple_spinner_item,item);
// chọn kiểu hiển thị khi click vào spinner giống dạng một dialog custom
adapter.setDropDownViewResource(android.R.layout.select_dialog_singlechoice);
// thêm mảng ArrayAdapter vừa tạo vào spinner
sp.setAdapter(adapter);
// phương thức bắt sự kiện spinner
sp.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

@Override
public void onItemSelected(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
//  arg2 là vị trí của phần tử trong mảng tính từ 0,1,2..
//item[arg2] là giá trị hay tên phần tử tương ứng vị trí arg2
tvshow.setText("Stt : "+arg2+ "  ,gia trị : "+item[arg2]);
}

@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
}

}

Và ta chạy ứng dụng sẽ được kết quả như sau : 




click vào spinner sẽ hiện lên một dialog. có 3 tên để chọn đó là mảng String item ta gán vào .
Khi chọn vào Hải Phòng ta được như sau : 



từ đó các bạn có thể sử dụng để lấy giá trị của spinner để phục vụ cho yêu cầu ứng dụng của các bạn. 

các bạn muốn có giao diện chọn cho spinner khác đi các bạn có thể chọn kiểu hiển thị tại đây:





Mọi thắc mắc các bạn liên hệ mình qua địa chỉ Gmail : svk10acntt@gmail.com hoặc Fb: John Ly Phạm

0 comments:

Post a Comment

http://knlaptrinhandroid.blogspot.com/

 
Top