在Android Studio中,当导航更改时,Spinner项目可能会丢失。以下是一个解决方法的代码示例:
private int spinnerSelection = 0;
Spinner spinner = findViewById(R.id.spinner);
ArrayAdapter adapter = ArrayAdapter.createFromResource(this, R.array.spinner_items, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
spinner.setSelection(spinnerSelection);
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView> parent, View view, int position, long id) {
// 保存Spinner项目的选择位置
spinnerSelection = position;
// 执行Spinner项目选择后的操作
// ...
}
@Override
public void onNothingSelected(AdapterView> parent) {
// 未选择项目时的操作
}
});
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putInt("spinnerSelection", spinnerSelection);
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
spinnerSelection = savedInstanceState.getInt("spinnerSelection");
}
通过这些代码示例,当导航更改时,Spinner项目的选择位置将被保存和恢复,以确保项目不会丢失。