在下面的代码中,我设置了一个微调器,侦听和检测微调器中的选择。坚持微调器选定的值
问题是我想保存之前选定的值,以便它在活动重新加载之间保持不变,但是当我重新加载活动时,以前选择的值未设置为微调器值。代码如下:
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