私のアプリでは、ユーザーが選択できるいくつかのアイテム (各アイテムはアクティビティである必要があります) を含むラジオグループを含むダイアログ ウィンドウを開きたいと考えています。選択したアイテム/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);
}
});
}
このコードを改善する必要がありますが、これでアイデアが得られます。