Giới thiệu
Ví dụ này minh họa cách tạo Spinner (dropdown) với một mục tiêu mặc định "Chọn từ danh sách" hiển thị ban đầu, trước khi người dùng chọn.
Các bước thực hiện
Bước 1: Tạo dự án mới
Mở Android Studio, chọn File → New Project và điền thông tin cần thiết.
Bước 2: Layout (activity_main.xml)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
xmlns:tools="https://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/linearLayout"
android:orientation="vertical"
tools:context=".MainActivity">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Spinner Sample Program"
android:layout_gravity="center"
android:layout_marginTop="30dp"
android:textSize="16sp"/>
<Spinner
android:id="@+id/spinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:layout_gravity="center">
</Spinner>
</LinearLayout>
Bước 3: Code Spinner với item mặc định (MainActivity.java)
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
Spinner spinner;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
spinner = findViewById(R.id.spinner);
List<String> footballPlayers = new ArrayList<>();
// Item đầu tiên làm placeholder
footballPlayers.add(0, "Chọn cầu thủ từ danh sách");
footballPlayers.add("Cristian Ronaldo");
footballPlayers.add("Lionel Messi");
footballPlayers.add("Neymar Jr");
footballPlayers.add("Isco");
footballPlayers.add("Gareth Bale");
footballPlayers.add("Luis Suarez");
ArrayAdapter<String> arrayAdapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, footballPlayers);
arrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(arrayAdapter);
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
// Bỏ qua item placeholder (position 0)
if (!parent.getItemAtPosition(position).equals("Chọn cầu thủ từ danh sách")) {
String item = parent.getItemAtPosition(position).toString();
Toast.makeText(parent.getContext(), "Đã chọn: " + item, Toast.LENGTH_SHORT).show();
}
}
@Override
public void onNothingSelected(AdapterView<?> parent) {}
});
}
}
Bước 4: Manifest (AndroidManifest.xml)
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android" package="app.com.sample">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Chạy ứng dụng
Kết nối thiết bị, nhấn Run. Spinner hiển thị "Chọn cầu thủ từ danh sách" ban đầu.


Mẹo: Để ẩn hoàn toàn item placeholder khỏi dropdown, dùng custom Adapter overridegetView()(hiển thị) vàgetDropDownView()(dropdown) riêng biệt.