在我的应用程序中,我想打开一个带有无线电组的对话框窗口,其中包含一些项目(每个项目应该是一个活动),用户可以从中进行选择。所选项目/ID 应存储在 sharedpreferences 中。ID 加载每个应用程序启动并打开所选项目/活动。
有人可以告诉我该怎么做吗?
在我的应用程序中,我想打开一个带有无线电组的对话框窗口,其中包含一些项目(每个项目应该是一个活动),用户可以从中进行选择。所选项目/ID 应存储在 sharedpreferences 中。ID 加载每个应用程序启动并打开所选项目/活动。
有人可以告诉我该怎么做吗?
有很多示例,但是好的,我举个例子:
您可以在活动下定义 2 种方法:
private void loadSavedPreferences() {
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
int selectedRadioID = sharedPreferences.getInt("SELECTED_RADIO", 0);
if(selectedRadioID > 0) {
// you got previously selected radio
RadioButton rb = (RadioButton)findViewById(selectedRadioID);
rb.setSelected(true);
}
}
private void savePreferences(String key, int radioId) {
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
Editor editor = sharedPreferences.edit();
editor.putInt(key, radioId);
editor.commit();
}
在您的活动方法上使用此方法onCreate
。
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
loadSavedPreferences();
RadioGroup rg = findViewById(R.id.your_radio_group_over_your_radios);
rg.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
savePreferences("SELECTED_RADIO", checkedId);
}
});
}
你应该改进这段代码,但这会给你这个想法。