0

radiogrouptのselectedindexをsharedpreferencesに保存したいのですが、それを行う方法がわかりません。誰かが私にそれを行うためのいくつかのヒントを教えてもらえますか?ありがとう

4

2 に答える 2

0

ラジオグループをすでに追加しましたか?それを読んで、共有設定の使用方法を知っていますか?

その場合は、アクティビティでonPause()をオーバーライドすることをお勧めします。そこで、ラジオグループの値を読み取り、共有設定に保存できます。

次に、必要に応じて、onResume()をオーバーライドして、sharedpreferencesから読み取り、UIを更新します。

于 2012-08-27T16:16:28.213 に答える
0

以下のサンプルコードを試してください。

public class MainActivity extends Activity {

private RadioGroup radioGroup;

private static final String SELECTED_INDEX="SelectedIndex";

private OnCheckedChangeListener checkedChangedListener=new OnCheckedChangeListener() {

    @Override
    public void onCheckedChanged(RadioGroup group, int checkedId) {
        saveSelectedIndex(checkedId);
    }
};

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    radioGroup = (RadioGroup) findViewById(R.id.rg);
    radioGroup.setOnCheckedChangeListener(checkedChangedListener);
    RadioButton rbtn=((RadioButton)radioGroup.findViewById(getSelectedValue()));
    if(rbtn!=null){
        rbtn.setChecked(true);
    }
}

private int getSelectedValue(){
    SharedPreferences pref=PreferenceManager.getDefaultSharedPreferences(this);
    return pref.getInt(SELECTED_INDEX, -1);
}

private void saveSelectedIndex(int value){
    SharedPreferences.Editor editor=PreferenceManager.getDefaultSharedPreferences(this).edit();
    editor.putInt(SELECTED_INDEX, value);
    editor.commit();
}

}
于 2012-08-27T16:23:50.693 に答える