How to save state of radio button in android(如何在android中保存单选按钮的状态)
本文介绍了如何在android中保存单选按钮的状态的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想保存在 android 中单击的单选按钮的状态.当用户进入下一个问题时,它必须保存状态,所以当他回到上一个状态时,它必须显示所选选项.
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.
推荐答案
使用共享首选项,保存单选按钮的状态,并在其他活动中检索数据.
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中保存单选按钮的状态的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
沃梦达教程
本文标题为:如何在android中保存单选按钮的状态
基础教程推荐
猜你喜欢
- 如何在没有IB的情况下将2个按钮添加到右侧的UINavigationbar? 2022-01-01
- Kivy Buildozer 无法构建 apk,命令失败:./distribute.sh -m “kivy"d 2022-01-01
- 如何让对象对 Cocos2D 中的触摸做出反应? 2022-01-01
- Android:对话框关闭而不调用关闭 2022-01-01
- android 应用程序已发布,但在 google play 中找不到 2022-01-01
- 当从同一个组件调用时,两个 IBAction 触发的顺序是什么? 2022-01-01
- 如何在 iPhone 上显示来自 API 的 HTML 文本? 2022-01-01
- 在 gmail 中为 ios 应用程序检索朋友的朋友 2022-01-01
- UIWebView 委托方法 shouldStartLoadWithRequest:在 WKWebView 中等效? 2022-01-01
- 如何在 UIImageView 中异步加载图像? 2022-01-01