Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在关闭应用程序后保持单选按钮处于选中状态-android studio_Android_Android Studio_Android Studio 3.0 - Fatal编程技术网

如何在关闭应用程序后保持单选按钮处于选中状态-android studio

如何在关闭应用程序后保持单选按钮处于选中状态-android studio,android,android-studio,android-studio-3.0,Android,Android Studio,Android Studio 3.0,我刚开始在Android Studio中编写代码,我刚刚了解了共享优先级。 我的老师给我布置了一个单选按钮组(RadioGroup),当你选中其中一个按钮时,关闭应用程序,再次打开,按钮将保持选中状态 就像您将编辑文本答案保存为共享引用,我需要将单选按钮保存为共享引用 正如我所说,我对这一点还不熟悉,所以请简单回答:) --解决了,谢谢大家的回答!由于您的评论,我找到了解决方案!:D以下是您如何在单选组上获得oncheckchange listener以在其中获得所选单选按钮的方法 注意!!!应

我刚开始在Android Studio中编写代码,我刚刚了解了共享优先级。 我的老师给我布置了一个单选按钮组(RadioGroup),当你选中其中一个按钮时,关闭应用程序,再次打开,按钮将保持选中状态

就像您将
编辑文本
答案保存为
共享引用
,我需要将
单选按钮
保存为
共享引用

正如我所说,我对这一点还不熟悉,所以请简单回答:)


--解决了,谢谢大家的回答!由于您的评论,我找到了解决方案!:D

以下是您如何在单选组上获得oncheckchange listener以在其中获得所选单选按钮的方法

注意!!!应为所有内部单选按钮提供ID


当应用程序启动时,您可以通过sharefPreference签入onCreate(),如果值已保存,则获取单选按钮并将其属性isSelected设置为true!我希望这足够简单

以下是您应该如何在单选通话组中获取oncheckchange listener以获取选中的单选按钮

注意!!!应为所有内部单选按钮提供ID


当应用程序启动时,您可以通过sharefPreference签入onCreate(),如果值已保存,则获取单选按钮并将其属性isSelected设置为true!我希望这足够简单

首先,您要将listener设置为
RadioGroup
,如下所示:

RadioGroup radioGroup = (RadioGroup) findViewById(R.id.yourRadioGroup);        
    radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() 
    {
        @Override
        public void onCheckedChanged(RadioGroup group, int checkedId) {
            // save id into your SharedPreferences
        }
    });
然后,您可以从共享首选项在onCreate()中还原它,并调用
radioGroup.check(id)
因此,代码将如下所示:

SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(this);
int checkedId = sharedPrefs.getInt("your key", 0);
radioGroup.check(checkedId);  

请注意,此代码已简化。您需要添加检查等。首先,您要将侦听器设置为
RadioGroup
,如下所示:

RadioGroup radioGroup = (RadioGroup) findViewById(R.id.yourRadioGroup);        
    radioGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() 
    {
        @Override
        public void onCheckedChanged(RadioGroup group, int checkedId) {
            // save id into your SharedPreferences
        }
    });
public class MainActivity extends AppCompatActivity {
   // this will be key for the key value pair
   public static final String BUTTON_STATE = "Button_State";
   // this is name of shared preferences file, must be same whenever accessing
   // the key value pair.
   public static final String MyPREFERENCES = "MyPrefs" ;

   SharedPreferences sharedpreferences;

   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      // helper method to open up the file.
      sharedpreferences = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE);
      // grab the last saved state here on each activity start
      Boolean lastButtonState = sharedpreferences.getBoolean(BUTTON_STATE, false)
      RadioButton rb = (RadioButton) findViewById(R.id.radio_button);
      // restore previous state
      rb.setChecked(lastButtonState);
      // set a listener
      rb.setOnClickListener(new View.OnClickListener() {
         @Override
         public void onClick(View v) {
            // call this to enable editing of the shared preferences file
            // in the event of a change
            SharedPreferences.Editor editor = sharedpreferences.edit();
            Boolean isChecked = rb.isChecked();
            // use this to add the new state
            editor.putBoolean(BUTTON_STATE, isChecked);
            // save
            editor.apply();
         }
      });
   }
}
然后,您可以从共享首选项在onCreate()中还原它,并调用
radioGroup.check(id)
因此,代码将如下所示:

SharedPreferences sharedPrefs = PreferenceManager.getDefaultSharedPreferences(this);
int checkedId = sharedPrefs.getInt("your key", 0);
radioGroup.check(checkedId);  
请注意,此代码已简化。您需要添加支票等

试试这个

public class MainActivity extends AppCompatActivity {
   // this will be key for the key value pair
   public static final String BUTTON_STATE = "Button_State";
   // this is name of shared preferences file, must be same whenever accessing
   // the key value pair.
   public static final String MyPREFERENCES = "MyPrefs" ;

   SharedPreferences sharedpreferences;

   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      // helper method to open up the file.
      sharedpreferences = getSharedPreferences(MyPREFERENCES, Context.MODE_PRIVATE);
      // grab the last saved state here on each activity start
      Boolean lastButtonState = sharedpreferences.getBoolean(BUTTON_STATE, false)
      RadioButton rb = (RadioButton) findViewById(R.id.radio_button);
      // restore previous state
      rb.setChecked(lastButtonState);
      // set a listener
      rb.setOnClickListener(new View.OnClickListener() {
         @Override
         public void onClick(View v) {
            // call this to enable editing of the shared preferences file
            // in the event of a change
            SharedPreferences.Editor editor = sharedpreferences.edit();
            Boolean isChecked = rb.isChecked();
            // use this to add the new state
            editor.putBoolean(BUTTON_STATE, isChecked);
            // save
            editor.apply();
         }
      });
   }
}
    RadioGroup radioGroup = findViewById(R.id.radio_gropup);
    final SharedPreferences preferences = getSharedPreferences("saved", 0);

    radioGroup.check(preferences.getInt("CheckedId", 0));

    radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(RadioGroup group, int checkedId) {
            SharedPreferences.Editor editor = preferences.edit();
            editor.putInt("CheckedId", checkedId);
            editor.apply();
        }
    });
试试这个

    RadioGroup radioGroup = findViewById(R.id.radio_gropup);
    final SharedPreferences preferences = getSharedPreferences("saved", 0);

    radioGroup.check(preferences.getInt("CheckedId", 0));

    radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(RadioGroup group, int checkedId) {
            SharedPreferences.Editor editor = preferences.edit();
            editor.putInt("CheckedId", checkedId);
            editor.apply();
        }
    });