gpt4 book ai didi

android - 将单选按钮值 "int"保存到共享首选项中

转载 作者:行者123 更新时间:2023-11-29 18:05:37 25 4
gpt4 key购买 nike

我仍然有这个单选按钮的问题:(。我仍在尝试创建一个设置页面,允许用户选择他们的文本颜色,一旦他们从这个设置 Activity 和所有其他 Activity 中选择并收听 sharedpreferences也改变。

我知道如何保存文本并从 Activity 之间的共享首选项中获取文本,但 int?因为我需要单选检查值,所以此方法将传递给其他 Activity 以设置那些 TextView 颜色。

有人可以帮我检查一下代码吗?

而且我对 android 和通用编程还很陌生。

public class Text_Colour extends Activity implements OnSharedPreferenceChangeListener {

RadioButton rb1, rb2, rb3, rb4, rb5;
TextView tv1, tv2;
RadioGroup rg1;
Button bt1;
String red, yellow, green, blue;

public static final String PREFS_NAME = "MyPrefsFile";


@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.colours);

loadPreferences();

tv1 = (TextView)findViewById(R.id.textview1);
tv2 = (TextView)findViewById(R.id.textview2);
bt1 = (Button) findViewById(R.id.button1);
rb1 = (RadioButton) findViewById(R.id.radioButton1);
rb2 = (RadioButton) findViewById(R.id.radioButton2);
rb3 = (RadioButton) findViewById(R.id.radioButton3);
rb4 = (RadioButton) findViewById(R.id.radioButton4);
rb5 = (RadioButton) findViewById(R.id.radioButton5);
rg1 = (RadioGroup) findViewById(R.id.radiogroup1);

bt1.setOnClickListener(Colour_change_b);

//tv1.setOnSharedPreferenceChangeListener(this);

}

View.OnClickListener Colour_change_b = new View.OnClickListener() {

public void onClick(View v) {

if(v == bt1) {

if (rb1.isChecked()== true) {
tv2.setTextColor(Color.RED);

}
if (rb2.isChecked() == true) {
tv2.setTextColor(Color.YELLOW);

}
if (rb3.isChecked() == true) {
tv2.setTextColor(Color.GREEN);

}
if (rb4.isChecked() == true) {
tv2.setTextColor(Color.BLUE);

}
if (rb5.isChecked() == true) {
rb5.getId();
tv2.setTextColor(Color.BLACK);

}
else {
}
SharedPreferences settings1 = getSharedPreferences(PREFS_NAME, 0);
SharedPreferences.Editor editor = settings1.edit();
editor.putInt("colour", rb1.getId());
editor.commit();
finish();
}
}
};
private void loadPreferences() {
// TODO Auto-generated method stub
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
tv1.setTextColor(settings.getId("colour", ""));
settings.registerOnSharedPreferenceChangeListener(Text_Colour.this);
}

public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,
String key) {

loadPreferences();
}
}

非常感谢你们抽出宝贵的时间。

最佳答案

使用您的 RadioGroup。您可以使用 setOnCheckedChangeListener(RadioGroup.OnCheckedChangeListener listener) 立即接收新颜色的值,您可以使用 getCheckedRadioButtonId() 获取选中的 radioButtonId。

但是,有一个问题。 Id 由 android 在编译时生成。不保证编译之间保持一致。如果您想获取 RadioGroup 中 RadioButton 的索引,请使用 indexOfChild(View child)

要获取值,您需要一个 getInt(),然后是一个 getChildAt(int index),然后是一个 getId() 和一个 check(int id)

关于android - 将单选按钮值 "int"保存到共享首选项中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13569348/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com