功能:我的应用程序中有3个活动,在活动1中,我有2组单选按钮。当用户在第一组单选按钮上单击“是”时,他将移至活动2nd。当他恢复原始活动时,应检查单选按钮。 之后,如果他单击第二个“是”,则应进入活动3rd。同样,当他返回主要活动时,两个单选按钮都应选中“是”。
问题:除了他从第三次活动回来时,我几乎可以执行所有功能,
答案 0 :(得分:0)
在Activity的onSaveInstanceState回调中使用your_radio_group_id.getCheckedRadioButtonId()保存选中的项目索引,然后在onCreate或onRestoreInstanceState方法中恢复状态。 您可以在这里找到更多详细信息:https://developer.android.com/reference/android/app/Activity.html#onSaveInstanceState(android.os.Bundle)
答案 1 :(得分:0)
假设您的SecondActivity已启动。
Intent i=new Intent(context,yourSecondActivity.class);
i.startActivity();
//Now second Activity will be opened.
在第二个活动中,覆盖 onBackPressed 方法并添加以下内容:
super.onBackPressed();
Intent i=new Intent(context,yourFirst.class);
i.putExtra("who", "yourSecondActivity");
i.startActivity
最后,您必须在第一个活动onCreate方法中添加以下内容:
Intent intent = getIntent();
if ( intent.getStringExtra("who") == "yourSecondActivity" ){
//Change the Radio Button so that it is checked.
RadioButton b = (RadioButton) findViewById(R.id.yourRadioButtonId);
b.setChecked(true);
}
因此,当您希望选中活动的复选框时,可以在意向中添加其他信息。这只是一个小例子。
答案 2 :(得分:0)
您可以使用的另一种方法是将单选按钮的状态保存在 SharedPreferences 中。当您回到主要活动时,可以使用相同的密钥从同一位置恢复它。 即使用户关闭活动,该方法也可以设置单选按钮。
保存密钥:
SharedPreferences sharedPref = MainActivity.this.getSharedPreferences(Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putBoolean("state_of_1st_radio_button",true);
// true or false depending on what you want to save.
editor.commit();
获取密钥:
SharedPreferences sharedPref = MainActivity.this.getSharedPreferences(Context.MODE_PRIVATE);
if(sharedPref.getBoolean("state_of_1st_radio_button",false) == true){
//set the radio button true
}
请注意,sharedPref.getBoolean方法中的第二个参数是DEFAULT VALUE,这意味着如果没有对象可以检索SharedPrefs形式,它将返回该默认值。
希望这会有所帮助。