0

快速提问。我将如何使用意图将选中的单选按钮值传递给其他活动?我是否还需要使用共享偏好来保存价值?

我想做类似“当用户选择单选按钮(例如:红色,蓝色,绿色,黄色)并且所有文本视图的颜色将在所有活动中更改时。

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);
    }

}

}

谢谢你的时间。

4

2 回答 2

1

如果您正在谈论其中的一个应用程序和活动,那么我建议您使用SharedPreferences. 这是您需要做的:

  1. 当单选按钮值更改时,将其保存在共享首选项中。
  2. 让你的所有活动都监听SharedPreferences. 在这种情况下,一旦您更改颜色,所有正在运行的活动都会收到通知,以便他们更新其 UI。只是使用SharedPreferences.registerOnSharedPreferenceChangeListener()方法。
  3. onCreate每个活动都需要从共享首选项中读取颜色值并进行必要的 UI 工作。完毕!
于 2012-11-23T01:08:12.597 回答
1

如果您希望单选按钮选择的更改将更新所有活动中所有 TextViews 的文本颜色,即使是正在运行的活动,您应该使用存储颜色的全局变量。这是在 Android 中创建类全局变量的一个很好的示例,它适用于您的所有应用程序组件。

于 2012-11-23T01:08:24.500 回答