在Android中,要動態(tài)更新Spinner的選擇項,你可以按照以下步驟操作:
<Spinner
android:id="@+id/spinner"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
public class MainActivity extends AppCompatActivity {
private Spinner spinner;
private ArrayAdapter<String> adapter;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
spinner = findViewById(R.id.spinner);
// 創(chuàng)建一個字符串數(shù)組
List<String> items = new ArrayList<>();
items.add("選項1");
items.add("選項2");
items.add("選項3");
// 創(chuàng)建一個適配器并將字符串數(shù)組傳遞給它
adapter = new ArrayAdapter<>(this, android.R.layout.simple_spinner_item, items);
// 設(shè)置適配器的下拉列表樣式
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// 將適配器應(yīng)用到Spinner
spinner.setAdapter(adapter);
}
}
AdapterDataObserver
監(jiān)聽適配器的變化,并使用notifyDataSetChanged()
方法更新適配器。例如:public class MainActivity extends AppCompatActivity {
// ... 其他代碼 ...
private void updateSpinnerItems() {
// 創(chuàng)建一個新的字符串數(shù)組
List<String> newItems = new ArrayList<>();
newItems.add("新選項1");
newItems.add("新選項2");
newItems.add("新選項3");
// 更新適配器中的數(shù)據(jù)
adapter.clear();
adapter.addAll(newItems);
// 通知適配器數(shù)據(jù)已更改
adapter.notifyDataSetChanged();
}
}
你可以在需要的時候調(diào)用updateSpinnerItems()
方法來動態(tài)更新Spinner的選擇項。例如,你可以在按鈕點擊事件中調(diào)用這個方法:
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
updateSpinnerItems();
}
});
這樣,當用戶點擊按鈕時,Spinner的選擇項將會更新為新的數(shù)據(jù)。