0

3 つのラジオボタンでアラートを作成しました。Alert には [OK] ボタンと [Cancel] ボタンがあり、[OK] には 3 つの Radiobuttons 機能を配置しました。私が起こっていること、最初のラジオボタンはレイアウトでtrueに設定されていますが、2番目のラジオボタンをクリックして[OK]を押すと、アラートを開いたときに2番目のラジオボタンがチェックされたままになります。しかし、これは起こっていません。警告ダイアログをもう一度クリックすると、最初にクリックされたラジオボタンが表示されます。多くの例を見てきましたが、結果はありません。

ここに画像の説明を入力

私のコード:

   case SYNC_ALERT:
        AlertDialog.Builder alertbuilder = new AlertDialog.Builder(this);
        alertbuilder.setMessage("Synchronization");
        alertbuilder.setCancelable(false);
        LayoutInflater buildinflater = this.getLayoutInflater();
        View SyncView= buildinflater.inflate(R.layout.sync_layout, null);
        alertbuilder.setView(SyncView);
        defaultchkbox = (RadioButton)SyncView.findViewById(R.id.defaultchkbox);
        after15mint = (RadioButton)SyncView.findViewById(R.id.after15mint);
        afternmint = (RadioButton)SyncView.findViewById(R.id.afternmint);
        alarms = (AlarmManager) getApplicationContext().getSystemService(Context.ALARM_SERVICE);
        alertbuilder.setPositiveButton("OK", new DialogInterface.OnClickListener()
        {
            public void onClick(DialogInterface dialog, int which)
            {
                //Implement search method here
                if(defaultchkbox.isChecked())
                {
                    BroadCastReceiver bcr = new BroadCastReceiver();
                    bcr.CancelAlarm(getApplicationContext());
                    adapter.refresAdapter(data);
                    Treedata();

                }
                else if(after15mint.isChecked())
                { 
                    // Create alarm intent
                    defaultchkbox.setChecked(false);
                    Intent downloader = new Intent(getApplicationContext(), BroadCastReceiver.class);
                    PendingIntent recurringDownload = PendingIntent.getBroadcast(getApplicationContext(),
                            0, downloader, PendingIntent.FLAG_UPDATE_CURRENT);
                    alarms.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(),
                            1000 * 10, recurringDownload);
                }
                else
                {
                    defaultchkbox.setChecked(false);
                    after15mint.setChecked(false);
                    BroadCastReceiver bcr = new BroadCastReceiver();
                    bcr.CancelAlarm(getApplicationContext());
                    showDialog(TIME_ALERT);
                }
              }
       });
        alertbuilder.setNegativeButton("CANCEL", new DialogInterface.OnClickListener()
        {
            public void onClick(DialogInterface dialog, int which) 
            {
                dialog.dismiss();
            }
        });
            AlertDialog alertdialog = alertbuilder.create();
            alertdialog.show();
            break;
4

0 に答える 0