从Android应用程序的第二个活动返回时如何检查第一个活动中的单选按钮

时间:2018-08-10 07:03:42

标签: android radio

功能:我的应用程序中有3个活动,在活动1中,我有2组单选按钮。当用户在第一组单选按钮上单击“是”时,他将移至活动2nd。当他恢复原始活动时,应检查单选按钮。 之后,如果他单击第二个“是”,则应进入活动​​3rd。同样,当他返回主要活动时,两个单选按钮都应选中“是”。

问题:除了他从第三次活动回来时,我几乎可以执行所有功能,

3 个答案:

答案 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形式,它将返回该默认值。

希望这会有所帮助。