快速提问。我如何使用intent将已检查的单选按钮值传递给其他活动?我是否还需要使用共享首选项来保存值?
我想做一些类似“当用户选择单选按钮(例如:红色,蓝色,绿色,黄色)时,所有活动都会更改textview的颜色。
public class Text_Colour extends Activity implements RadioGroup.OnCheckedChangeListener {
RadioButton rb1, rb2, rb3, rb4;
TextView tv2;
RadioGroup rg1;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.colours);
tv2 = (TextView)findViewById(R.id.textview2);
rb1 = (RadioButton) findViewById(R.id.radioButton1);
rb2 = (RadioButton) findViewById(R.id.radioButton2);
rb3 = (RadioButton) findViewById(R.id.radioButton3);
rb4 = (RadioButton) findViewById(R.id.radioButton4);
rg1 = (RadioGroup) findViewById(R.id.radiogroup1);
rg1.setOnCheckedChangeListener(this);
}
public void onCheckedChanged(RadioGroup rg1, int r) {
// TODO Auto-generated method stub
if (r==rb1.getId()) {
tv2.setTextColor(Color.RED);
}
if (r==rb2.getId()) {
tv2.setTextColor(Color.YELLOW);
}
if (r==rb3.getId()) {
tv2.setTextColor(Color.GREEN);
}
if (r==rb4.getId()) {
tv2.setTextColor(Color.BLUE);
}
else {
tv2.setTextColor(Color.BLACK);
}
}
}
谢谢你的时间。答案 0 :(得分:1)
如果您正在讨论其中的一个应用程序和活动,那么我建议您使用SharedPreferences
。
以下是您需要做的事情:
SharedPreferences
中的更改。在这种情况下,只要您更改颜色,就会通知所有正在运行的活动,以便他们更新其UI。只需使用SharedPreferences.registerOnSharedPreferenceChangeListener()
方法。onCreate
都需要从共享首选项中读取颜色值并执行必要的UI工作。
完成!答案 1 :(得分:1)
如果您希望单选按钮选择中的更改将更新所有TextViews在所有活动中的文本颜色,即使是正在运行的活动,也应使用存储颜色的全局变量。以下是在Android中创建类似全局变量的nice example,可供所有应用程序组件使用。