[Android] Spinner in Android
spinner cho phép chúng ta có 1 bảng chọn sẵn dạng như thế này:
Để có thể đặt các giá trị cho spinner ta có 2 cách thực hiện là đặt sẵn giá trị trong file res/values/strings.xml hoặc đặt ngay trong file *.java.
Trước tiên ta làm 1 cái giao diện đơn giản đã.
file *.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center_horizontal" android:text="My Spinner 1"/> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content"> <Spinner android:id="@+id/spin" android:layout_width="wrap_content" android:layout_height="wrap_content" android:gravity="center_horizontal"/> </LinearLayout> </LinearLayout>
Sau đó ta có thể nhìn trong tab Graphics cal có dạng sau (hơi xấu nhưng sau khi chạy sẽ có dạng như hình bên trên)
Tiếp theo ta cài đặt các giá trị trong spinner:
Cách 1: Cài đặt ngay trong Java.
package android.spinner; import android.os.Bundle; import android.app.Activity; import android.widget.ArrayAdapter; import android.widget.Spinner; public class MainActivity extends Activity { Spinner sp; ArrayAdapter<String> adapter; //tạo vector adapter để truyền vào spinner String numbers[] = { "ONE", "TWO", "THREE", "FOUR", "FIVE", "SIX", "SEVEN", "EIGHT", "NINE", "TEN" }; // number[] là các giá trị của spinner khi hiện ra public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); sp = (Spinner) findViewById(R.id.spin); //set các giá trị của number vào adapter adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, numbers); //set adapter vào sp (spinner) sp.setAdapter(adapter); } }
Kết quả của chúng ta:
Cách 2: Cài đặt các giá trị từ file res/values/strings.xml
Cũng với giao diện đã cài như trên. Ta thêm vào file strings.xml đoạn code sau:
<string-array name = "day"> <!--Tên của mảng--> <item>Monday</item> <item>Tuesday</item> <item>Wednesday</item> <item>Thursday</item> <item>Firday</item> <item>Saturday</item> <item>Sunday</item> </string-array>
Tiếp theo ta làm việc với file *.java
package android.spinner1; import android.os.Bundle; import android.app.Activity; import android.widget.ArrayAdapter; import android.widget.Spinner; public class MainActivity extends Activity { ArrayAdapter<CharSequence> adapter; Spinner sp; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); sp = (Spinner) findViewById(R.id.spin); //Lấy giá trị của mảng "day" trong file string.xml bằng lệnh sau ("R.array.day" là tên mảng giá trị trong file string) adapter = ArrayAdapter.createFromResource(this, R.array.day, android.R.layout.simple_spinner_item); //set các giá trị vào spinner sp.setAdapter(adapter); } }
Và Kết quả của chúng ta:
Phản hồi gần đây