在下面的代碼中,我設置了一個微調器,偵聽和檢測微調器中的選擇。堅持微調器選定的值
問題是我想保存之前選定的值,以便它在活動重新加載之間保持不變,但是當我重新加載活動時,以前選擇的值未設置爲微調器值。代碼如下:
final Spinner spinner = (Spinner)findViewById(R.id.Spinner_gender);
ArrayAdapter<?> adapter = ArrayAdapter.createFromResource(this, spinnerID, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(
new AdapterView.OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> parent, View itemSelected, int selectedItemPosition, long selected){
Editor editor = mGameSettings.edit();
editor.putLong(GAME_PREFERENCES_GENDER, selectedItemPosition);
editor.commit();
}
@Override
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
}
);
//if(mGameSettings.contains(GAME_PREFERENCES_GENDER)){
Toast.makeText(QuizSettingsActivity.this, "Detected(again): " + spinner.getSelectedItemPosition(), Toast.LENGTH_SHORT).show();
spinner.setSelection(spinner.getSelectedItemPosition());
//}
我使用spinner.getSelectedItemPosition()
得到微調選定的索引。任何人都可以告訴我我做錯了什麼?
通過「活動重新加載」,你是指在完全獨立的活動啓動之間保持已保存的狀態?或者你的意思是當活動仍然在記憶中,然後再次拉起(例如從你的內部啓動一個單獨的活動,然後點擊「後退」鍵返回到你的活動)?這是兩個不同的情況,有不同的答案。 – 2010-11-10 22:26:13
當您的活動仍在堆棧中時,Android應該自動保存微調器的狀態,但是如Alexander提到的,當活動從堆棧中移出時,它將被清除。 – 2010-11-11 01:17:23