Androidでクリックしたラジオボタンの状態を保存したい。ユーザーが次の質問に進むときは状態を保存する必要があるため、前の状態に戻るときは選択したオプションを表示する必要があります。
質問する
911 次
1 に答える
0
共有設定を使用して、ラジオ ボタンの状態を保存すると、他のアクティビティでデータを取得できます。
これは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レイアウトです:
<?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>
そして、これはあなたが必要とすることをするのに役立ちます.
于 2015-08-12T08:03:17.867 に答える