【问题标题】:Android - sharedpreferences for radio buttonAndroid - 单选按钮的共享首选项
【发布时间】:2014-08-23 12:39:15
【问题描述】:

我正在努力为我的单选按钮实现共享首选项,我正在尝试保存单选按钮的状态,但是当我运行我的模拟器时会出现一个空白屏幕并且页面上的所有内容都消失了......任何帮助将不胜感激

这是我的代码:

创建时

public void onCreate(Bundle savedInstanceState, ViewGroup radioGroup) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_system);
    SharedPreferences sharedPreferences = getSharedPreferences("MY_SHARED_PREF", MODE_PRIVATE);
    int savedRadioIndex = sharedPreferences.getInt(KEY_SAVED_RADIO_BUTTON_INDEX, 0);
    RadioButton savedCheckedRadioButton = (RadioButton)radioGroup.getChildAt(savedRadioIndex);
    savedCheckedRadioButton.setChecked(true);

调用方法

    RadioGroup gender = (RadioGroup) findViewById(R.id.question1);

    gender.setOnCheckedChangeListener(new OnCheckedChangeListener() {
        public void onCheckedChanged(RadioGroup group, int checkedId) {
            // TODO Auto-generated method stub
            switch (checkedId) {
            case R.id.answer1A:
                ans1 = 1;
                break;
            case R.id.answer1B:
                ans1 = 2;
                break;
            }
            SavePreferences("SAVED_RADIO_BUTTON_INDEX", checkedId);

        }

方法

        private void SavePreferences(String key, int value){
              SharedPreferences sharedPreferences = getSharedPreferences("MY_SHARED_PREF", MODE_PRIVATE);
              SharedPreferences.Editor editor = sharedPreferences.edit();
              editor.putInt(key, value);
              editor.commit(); 
             }

    });

【问题讨论】:

    标签: java android eclipse button


    【解决方案1】:

    我认为您正在尝试将 id 设置为 position ,试试这个

         SharedPreferences sharedPreferences = getSharedPreferences("MY_SHARED_PREF", MODE_PRIVATE);
         int savedRadioIndex = sharedPreferences.getInt(KEY_SAVED_RADIO_BUTTON_INDEX,R.id.answer1A);
         gender.check(savedRadioIndex);
    

    而不是

        SharedPreferences sharedPreferences = getSharedPreferences("MY_SHARED_PREF", MODE_PRIVATE);
        int savedRadioIndex = sharedPreferences.getInt(KEY_SAVED_RADIO_BUTTON_INDEX, 0);
        RadioButton savedCheckedRadioButton = (RadioButton)radioGroup.getChildAt(savedRadioIndex);
        savedCheckedRadioButton.setChecked(true);
    

    【讨论】:

      【解决方案2】:

      试试这样:

              String radio_value;
              int val;
      
      
          SharedPreferences sharedPreferences = getSharedPreferences("MY_SHARED_PREF", MODE_PRIVATE);
          int savedRadioIndex = sharedPreferences.getString("KEY_SAVED_RADIO_BUTTON_INDEX", "");
          RadioButton savedCheckedRadioButton = (RadioButton)radioGroup.getChildAt(savedRadioIndex);
          savedCheckedRadioButton.setChecked(true);
      
      
      
              val=Integer.ParseInt(savedRadioIndex);
              savedCheckedRadioButton.check(val);
      

      希望对您有所帮助!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-11-14
        • 2012-11-29
        • 2023-03-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多