如何在SharedPreferences中保存选项菜单的单选按钮检查状态-AndroidStudio

问题描述

用户RadioButtonOptions Menu按下按钮时,我想在SharedPreferences中保存checked项目的unchecked状态。 我尝试了下面的代码,但是没有运气。

@Override
  public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.optionsmenu,menu);
    item = menu.findItem(R.id.one);
    
    item.setChecked(geTradioButtonStatus("RadioButtonStatus"));
    
    return true;
  }
  @Override
  public boolean onoptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
      case R.id.one:
        int itemId = item.getItemId();
        if (itemId == R.id.one) {
          if (!item.isChecked()) {
            cardView.setVisibility(View.VISIBLE);
            item.setChecked(true);
            
            saveRadioButtonStatus("RadioButtonStatus",true);
            
          } else {
            cardView.setVisibility(View.GONE);
            item.setChecked(false);
            
            saveRadioButtonStatus("RadioButtonStatus",false);
            
          }
        }
        break;
      case R.id.two:
        .....
        break;
      case R.id.three:
        .....
        break;
      default:
        return super.onoptionsItemSelected(item);
    }
    return true;
  }
  
  private boolean geTradioButtonStatus(String key){
    SharedPreferences preferences = getApplicationContext().getSharedPreferences("RadioButtonStatus",android.content.Context.MODE_PRIVATE);
    return preferences.getBoolean(key,false);
  }
  private void saveRadioButtonStatus(String key,boolean value){
    SharedPreferences preferences = getApplicationContext().getSharedPreferences("RadioButtonStatus",android.content.Context.MODE_PRIVATE);
    SharedPreferences.Editor editor = preferences.edit();
    editor.putBoolean(key,value);
    editor.apply();
  }

以上代码无法正常工作,而且我不明白我在哪里做错了。 请帮助我,谢谢你。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...