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

1 つのアプリケーションとその中のアクティビティについて話している場合は、 を使用することをお勧めしSharedPreferencesます。これがあなたがする必要があることです:

  1. ラジオボタンの値が変更されたら、共有設定に保存します。
  2. の変更をリッスンするすべてのアクティビティを作成しますSharedPreferences。この場合、色を変更するとすぐに、実行中のすべてのアクティビティに通知され、UI が更新されます。SharedPreferences.registerOnSharedPreferenceChangeListener()メソッドを使用するだけです。
  3. onCreateすべてのアクティビティで、共有設定から色の値を読み取り、必要な UI 作業を行う必要があります。終わり!
于 2012-11-23T01:08:12.597 に答える
1

ラジオ ボタンの選択を変更して、実行中のアクティビティも含め、すべてのアクティビティですべての TextView のテキストの色を更新する場合は、色を格納するグローバル変数を使用する必要があります。Android でグローバルに似た変数を作成する良い例を次に示します。これは、すべてのアプリケーション コンポーネントで使用できます。

于 2012-11-23T01:08:24.500 に答える