首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在关闭应用程序后保持单选按钮处于选中状态- android studio

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

Stack Overflow用户
提问于 2018-07-31 06:34:08
回答 3查看 1.8K关注 0票数 0

我是一个在Android Studio中编程的新手,我刚刚了解了共享预渲染。我的老师给我布置了一个单选按钮组(RadioGroup),当你选中其中一个按钮时,关闭应用程序,再打开它,按钮将保持选中状态。

就像你用SharedPrefrences保存一个EditText答案一样,我需要用SharedPrefrences保存一个RadioButton

正如我所说的,我是个新手,所以请简单回答:)

--已解决--感谢所有人的回答!感谢你的评论,我找到了我的解决方案!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2018-07-31 06:56:48

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();
         }
      });
   }
}
票数 0
EN

Stack Overflow用户

发布于 2018-07-31 06:48:56

首先,您希望将侦听器设置为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);  

请注意,此代码已简化。您需要添加检查,等等

票数 1
EN

Stack Overflow用户

发布于 2018-07-31 13:10:04

尝尝这个,

    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();
        }
    });
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51603169

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档