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;