0

アクティビティに 2 つのラジオ ボタンがあるアプリケーションに取り組んでいます。

  • 4チャンネル

  • 9チャンネル

今:

  1. 画面のデフォルト選択は 4channel ラジオ ボタンです。

  2. ユーザーが (9channel) ボタンをクリックしたい場合は、ユーザーにプロンプ​​トを表示するダイアログ ボックスが開きます。

" 移動すると、保存されたすべてのアイテムが削除されます "

  1. ダイアログボックスには、「はい」と「いいえ」ボタンがあります。「はい」ボタンをクリックすると、9チャンネルのラジオボタンが選択されます。

修正したい問題は次のとおりです。

  1. ユーザーがダイアログボックスの「いいえ」ボタンをクリックすると、ダイアログを終了します。ただし、ラジオ ボタンの選択は引き続き (9channel) ラジオ ボタンに移動します。ユーザーがダイアログ ボックスで [いいえ] をクリックした場合に古い選択を保持する方法は?

  2. アクティビティのデフォルトの選択はオン (4 チャンネル) ラジオ ボタンです。ユーザーが選択した同じボタンをクリックした場合、ダイアログボックスを開きたくありません。ダイアログボックスは、他のラジオボタンをクリックした場合にのみ開く必要があります。

上記の2つのシナリオをどのように達成できますか? radionbutton ビューを取得してユーザーに表示する方法がわかりません。

私のコード:

rg = (RadioGroup) findViewById(R.id.radioGroup1);
public void addListenerOnButton() 
       {

        OnClickListener listener = new OnClickListener() {
        @Override
        public void onClick(View v) {
               RadioButton rb = (RadioButton) v;
               selection = (String) rb.getText();

                   mFlag = true;
                   showDialog(SELECTION_ALERT_ID);

        }
    };

    RadioButton rb1 = (RadioButton) findViewById(R.id.radioButton1);
    rb1.setOnClickListener(listener);
    RadioButton rb2 = (RadioButton) findViewById(R.id.radioButton2);
    rb2.setOnClickListener(listener);
} 
4

2 に答える 2

1

コードで「ネガティブ」オプションのコードを作成します。

new AlertDialog.Builder(this)
                    .setTitle("Hello!")
                    .setMessage("Choose your RadioButton:")
                    .setPositiveButton(android.R.string.yes, new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int which) { 
                            rb1.setChecked(true);
                            rb2.setChecked(false);                                
                        }
                    })
                    .setNegativeButton(android.R.string.no, new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int which) {
                            rb1.setChecked(false);
                            rb2.setChecked(true);
                        }
                    })
                    .setIcon(android.R.drawable.ic_dialog_alert)
                    .show();
于 2015-05-05T12:53:08.477 に答える
0

1 の場合、ダイアログ ボタン リスナーで次のようにします。

まず、ラジオ ボタンをグローバル変数に移動し、次のリスナーをダイアログ ポップアップに追加します。

次に、ネガティブ ボタンのリスナーを更新します。

.setNegativeButton(getString(R.string.alert_dialog_negative_text),
      new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
             //not checked, but according to api, should be this method
            rb1.setSelected(true);
        }
 });

2 の場合、リスナー コードでチェックを行うことができます。クリックしたラジオ ボタンがチェックされている場合は、ダイアログを表示しないでください。

しかし、個人的にはOnCheckedChangeListener、ラジオ ボタンに を使用することをお勧めします。この質問を参照してください:ラジオ ボタン リスナー

于 2015-05-05T12:58:04.577 に答える