Android選擇框(Spinner)可以通過以下步驟實現異步加載:
public class LoadDataTask extends AsyncTask<Void, Void, List<String>> {
@Override
protected List<String> doInBackground(Void... voids) {
// 在后臺線程中加載數據
List<String> data = fetchDataFromNetwork();
return data;
}
@Override
protected void onPostExecute(List<String> data) {
// 在主線程中更新UI
ArrayAdapter<String> adapter = new ArrayAdapter<>(context, android.R.layout.simple_spinner_item, data);
spinner.setAdapter(adapter);
}
private List<String> fetchDataFromNetwork() {
// 從網絡加載數據的具體實現
}
}
LoadDataTask task = new LoadDataTask();
task.execute();
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
String selectedItem = (String) parent.getItemAtPosition(position);
// 處理選擇事件
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
// 未選擇時的處理
}
});
通過以上步驟,可以實現在Android選擇框中異步加載數據,并在選擇事件中處理數據。