我仍然有這個單選按鈕的問題:(。我仍然試圖創建一個設置頁面,允許用戶選擇他們的文字顏色,並且一旦他們從此選擇設置活動和所有其他活動與聽共享首選更改以及將單選按鈕值「int」保存到共享首選項
我知道如何保存文本並從活動之間的共享首選項獲取文本,但int?因爲我需要無線電檢查值,此方法將被傳遞在其他活動設置這些文本視圖顏色。
任何人都可以檢查我的代碼?
我對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();
}
}
非常感謝您的時間傢伙。
你期望'editor.putInt(「color」,rb1.getId());'做什麼? – njzk2
ermmmmm即時通訊相當新,但我的邏輯告訴我,得到int然後把它放到「顏色」,不太確定爲什麼我有rb1.getId()那裏...如果我使用rb1.getText()。toString ()editor.putInt將變爲無法解析。 – Ket
rb1是第一個單選按鈕。它沒有包含任何關於其他的內容,因此無法幫助您瞭解選擇哪個項目。 – njzk2