如何保存单选按钮,在Android的状态 [英] How to save state of radio button in android

查看:176
本文介绍了如何保存单选按钮,在Android的状态的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我要救单选按钮的状态点击android系统中。当用户进入到下一个问题就必须保存状态,因此,当他回来previous状态,它必须显示所选择的选项。

I want to save the state of radio button clicked in android. When user goes to next question it must save state so when he comes back to previous state it must show the selected option.

推荐答案

使用共享preferences,为了节省您的单选按钮的状态,你能在其他活动中检索数据。

Use Shared Preferences, To save your radio button's state,and you get to retrieve data in other activities.

这是Java类:

import android.app.Activity;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Toast;
import android.widget.RadioGroup.OnCheckedChangeListener;

public class ABCD extends Activity{


    private int ival;
    public static int glob=1;
    static SharedPreferences sPref;
    private SharedPreferences.Editor sE;
    RadioGroup rbMain;
    RadioButton rb1,rb2,rb3,rb4,rb5;   

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.layout);

        rbMain = (RadioGroup) findViewById(R.id.rgMain);
        rb1 = (RadioButton)findViewById(R.id.radio1);
        rb2 = (RadioButton)findViewById(R.id.radio2);
        rb3 = (RadioButton)findViewById(R.id.radio3);
        rb4 = (RadioButton)findViewById(R.id.radio4);
        rb5 = (RadioButton)findViewById(R.id.radio5);

        sPref = getSharedPreferences("Pref",0);
        sE = sPref.edit();
        ival = sPref.getInt("Pref", 0);

        if(ival == R.id.radio1){
            rb1.setChecked(true);
            glob=1;
        }else if(ival == R.id.radio2){
            rb2.setChecked(true);   
            glob=2;
        }else if(ival == R.id.radio3){
            rb3.setChecked(true);
            glob=3;
        }else if(ival == R.id.radio4){
            rb4.setChecked(true);   
            glob=4;
        }else if(ival == R.id.radio5){
            rb5.setChecked(true);
            glob=5;
        }

        rbMain.setOnCheckedChangeListener(new OnCheckedChangeListener() {
            int state = 0;
            public void onCheckedChanged(RadioGroup group, int checkedId) {
                if(checkedId == R.id.radio1){
                    sE.clear();
                    sE.putInt("Pref", checkedId);
                    sE.apply();
                }else if(checkedId == R.id.radio2){
                    sE.clear();
                    sE.putInt("Pref", checkedId);
                    sE.apply();
                }else if(checkedId == R.id.radio3){
                    sE.clear();
                    sE.putInt("Pref", checkedId);
                    sE.apply();
                }else if(checkedId == R.id.radio4){
                    sE.clear();
                    sE.putInt("Pref", checkedId);
                    sE.apply();
                }else if(checkedId == R.id.radio5){
                    sE.clear();
                    sE.putInt("Pref", checkedId);
                    sE.apply();
                }

            }
        });

    }   

    @Override
    protected void onStop() {
        // TODO Auto-generated method stub
        super.onStop();
        sPref = getSharedPreferences("Pref",0);
        sE = sPref.edit();
        ival = sPref.getInt("Pref", 0);

        if(ival == R.id.radio1){
            rb1.setChecked(true);
            glob=1;
        }else if(ival == R.id.radio2){
            rb2.setChecked(true);   
            glob=2;
        }else if(ival == R.id.radio3){
            rb3.setChecked(true);
            glob=3;
        }else if(ival == R.id.radio4){
            rb4.setChecked(true);   
            glob=4;
        }else if(ival == R.id.radio5){
            rb5.setChecked(true);
            glob=5;
        }
    }

}

这是我的XML布局:

and this is my XML Layout:

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
  android:background="@color/white"
>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" 
    >
 <RadioGroup android:layout_width="wrap_content"
        android:layout_gravity="center_horizontal" android:layout_height="wrap_content"
        android:layout_weight="1" android:id="@+id/rgMain">
        <RadioButton android:layout_width="wrap_content"
            android:id="@+id/radio1" android:layout_height="wrap_content"
            android:checked="true" android:text="1" android:textColor="@color/back">         
        </RadioButton>
        <RadioButton android:id="@+id/radio2"
            android:layout_width="wrap_content" android:layout_height="wrap_content"
            android:text="2" android:textColor="@color/back">            
        </RadioButton>
        <RadioButton android:layout_width="wrap_content"
            android:id="@+id/radio3" android:layout_height="wrap_content"
            android:text="3" android:textColor="@color/back">            
        </RadioButton>
        <RadioButton android:layout_width="wrap_content"
            android:id="@+id/radio4" android:layout_height="wrap_content"
            android:text="4" android:textColor="@color/back">            
        </RadioButton>
        <RadioButton android:layout_width="wrap_content"
            android:id="@+id/radio5" android:layout_height="wrap_content"
            android:text="5" android:textColor="@color/back">            
        </RadioButton>
    </RadioGroup>
</LinearLayout>

</ScrollView>

和,这可以帮助你做任何你需要的。

And, this can help you to do whatever you need.

这篇关于如何保存单选按钮,在Android的状态的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆