0

在我的应用程序中,我想打开一个带有无线电组的对话框窗口,其中包含一些项目(每个项目应该是一个活动),用户可以从中进行选择。所选项目/ID 应存储在 sharedpreferences 中。ID 加载每个应用程序启动并打开所选项目/活动。

有人可以告诉我该怎么做吗?

4

1 回答 1

-1

有很多示例,但是好的,我举个例子:

您可以在活动下定义 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);
        }
    });

}

你应该改进这段代码,但这会给你这个想法。

于 2013-10-30T21:41:00.343 回答