[英]How to handle Spinners when screen orientation changes?
我有兩個微調器。 在onCreate
我為他們設置監聽器。 在其他一些地方,我會填充它們。
現在,我不確定在屏幕方向發生變化時處理這些微調框的最佳做法是什么。 我應該將所有值和選定的項目以某種方式存儲在sharedPreferences
還是保存在savedInstanceState
?
如果可以的話,請以一種首選的方式告訴我,並包括一些處理微調框的示例代碼。 此處的目標是在生命周期中保留值和所選項目。
我將根據要求或在需要時提供代碼。
謝謝
嘗試此操作, onSaveInstanceState
用於“屏幕方向”以保存您選定的微調器值,根據我的選擇, shared preference
不是保存選定的微調器值的好選擇。
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putInt("mySpinner", mySpinner.getSelectedItemPosition());
// do this for each or your Spinner
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// initialize all your visual fields
if (savedInstanceState != null) {
mySpinner.setSelection(savedInstanceState.getInt("mySpinner", 0));
// do this for each of your text views
}
}
在您的AndroidManifest文件中添加android:configChanges="orientation|screenSize"
,它將在方向更改時保持選定的微調器值。
用戶微調器是這樣的:
mSpinner = findViewById(R.id.spinner);
ArrayList<String> stringArrayList = new ArrayList<>();
for (int i = 0; i < 6; i++) {
stringArrayList.add("List Item " + i);
}
ArrayAdapter arrayAdapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, stringArrayList);
spinner.setAdapter(arrayAdapter);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.