2014-03-03 54 views
0

我已经创建了一个表示问题的无线电组,并且有4个答案选项(a,b,c和d),因此我为radiogroup创建了4个单选按钮,并且它工作正常,但我想要的是保持了答案核对,当我离开活动并返回到它,这里是代码:如何使用SharedPreferences保存RadioGroup状态

公共类P2扩展第1页{

RadioGroup rg2 ; 
RadioButton r2a , r2b , r2c , r2d ; 
Button b2n , b2b ; 
TextView tv ; 
int count ; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_p2); 

    rg2 = (RadioGroup) findViewById(R.id.RG2); 
    r2a = (RadioButton) rg2.getChildAt(0); 
    r2b = (RadioButton) rg2.getChildAt(1); 
    r2c = (RadioButton) rg2.getChildAt(2); 
    r2d = (RadioButton) rg2.getChildAt(3); 
    b2n = (Button) findViewById(R.id.B2n); // next button 
    b2b = (Button) findViewById(R.id.B2b); // back button to page1 
    tv = (TextView) findViewById(R.id.res); 


    rg2.setOnCheckedChangeListener(new OnCheckedChangeListener(){ 

     @Override 
     public void onCheckedChanged(RadioGroup arg0, int arg1) { 
      if (r2c.isChecked()){ 
    count ++ ; // since c is the correct answer add 1 to count (mark) 

          } 

     } 

    }); 


} 

公共无效move21(查看图){//当点击b2b返回第1页时调用

Intent intent = new Intent(this , Page1.class) ; 
    startActivity (intent) ; 
} } 

顺便说一句,我没有为radiobutton定义id,只是radiogroup的id(rg2)。 如何使用共享偏好保存radiogroup的状态? 感谢

回答

0

在你离开之前的当前活动是保存状态的东西,如你可以做什么:

SharedPreferences settings = getSharedPreferences("answers", MODE_PRIVATE); 
SharedPreferences.Editor editor = settings.edit(); 
editor.putBoolean("r2a",r2a.isChecked()); 
editor.putBoolean("r2b",r2b.isChecked()); 
editor.putBoolean("r2c",r2c.isChecked()); 
editor.putBoolean("r2d",r2d.isChecked()); 
editor.apply(); 

然后,当你回来到活动中,你可以这样做:

SharedPreferences settings = getSharedPreferences("answers", MODE_PRIVATE); 
boolean r2achecked = settings.getBoolean("r2a",false); 
boolean r2bchecked = settings.getBoolean("r2b",false); 
boolean r2cchecked = settings.getBoolean("r2c",false); 
boolean r2dchecked = settings.getBoolean("r2d",false); 

然后检查每个新创建的bool,如果其中一个为真,请将该按钮设置为检查。