2012-11-22 158 views
0

快速問題。我將如何將使用意向的單選按鈕值傳遞給其他活動?我是否也需要使用分享偏好來保存價值?將意念單選按鈕的值傳遞給其他活動?

我想要做這樣的事情「,當用戶選擇的單選按鈕(例如:紅色,藍色,綠色,黃色)和所有的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); 
    } 

} 

}

。 。

感謝您的時間

回答

1

如果你談論的是一個應用程序,並在它的活動,那麼我建議去與SharedPreferences 以下是你需要做什麼:

  1. 當單選按鈕值更改時,將其保存在共享首選項中。
  2. 讓你所有的活動,以聽取SharedPreferences的變化。在這種情況下,只要更改顏色,所有正在運行的活動都會收到通知,以便他們更新其UI。只需使用SharedPreferences.registerOnSharedPreferenceChangeListener()方法。
  3. onCreate每個活動都需要從共享偏好中讀取顏色值並進行必要的UI工作。 完成!
1

如果您希望更改單選按鈕選項將更新所有活動中的所有TextView的文本顏色,即使是運行的文本顏色,也應該使用存儲顏色的全局變量。以下是在Android中創建類似全局變量的nice example,這些變量可供所有應用程序組件使用。

相關問題