0

ラジオ グループとして 2 つのラジオ ボタンと「実行」ボタンがあります。ラジオ ボタンを選択して「実行」を押すと、ラジオの選択に応じて別のダイアログが表示されます。次の最後から 2 番目の行 (アラート ダイアログ ビルダーの作成) でエラーが発生します。

private OnClickListener myClickcalcHandler = new OnClickListener() {
    public void myClickcalcHandler(View view) {
        switch (view.getId()) {
        case R.id.calcbutton:
            RadioButton insideButton = (RadioButton) findViewById(R.id.radioButton1);
            RadioButton outsideButton = (RadioButton) findViewById(R.id.radioButton1);
            }
        if
        (outsideButton.isChecked()){
            //do what you want
            AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
                        context);
                // set title
                alertDialogBuilder.setTitle("some outside activity");
                button = (Button) findViewById(R.id.emailbutton);
                // set dialog message
                alertDialogBuilder
                    .setMessage(R.string.email_long)
                    .setCancelable(false)
                    .setNegativeButton("Close",new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog,int id) {
                            // if this button is clicked, just close
                            // the dialog box and do nothing
                            dialog.cancel();
                        }
                    });
        }
        else if
        (insideButton.isChecked()){
            //do what you want 
            AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
                    context);
            // set title
            alertDialogBuilder.setTitle("some inside activity");
            button = (Button) findViewById(R.id.emailbutton);
            // set dialog message
            alertDialogBuilder
                    .setMessage(R.string.email_long)
                    .setCancelable(false)
                    .setNegativeButton("Close",new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog,int id) {
                            // if this button is clicked, just close
                            // the dialog box and do nothing
                            dialog.cancel();
                        }
                    });
        }
            // create alert dialog
            AlertDialog alertDialog = alertDialogBuilder.create();
            // show it
        alertDialog.show();

            }

そのため、Eclipse エディターは「alertDialogBu​​ilder を解決できません」と言うだけで、その理由はわかりません。

4

3 に答える 3

0

decalare AlertDialogは、グローバルにif/elseブロックの外側を次のように意味します。

private OnClickListener myClickcalcHandler = new OnClickListener() {
    public void myClickcalcHandler(View view) {
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
                        context);

        switch (view.getId()) {
        case R.id.calcbutton:
            RadioButton insideButton = (RadioButton) findViewById(R.id.radioButton1);
            RadioButton outsideButton = (RadioButton) findViewById(R.id.radioButton1);
            }
         //YOUR CODE HERE.....
于 2012-06-28T17:59:44.897 に答える
0

コンストラクトAlertDialog.Builder alertDialogBuilderの外部で宣言してから、内部で定義する必要があります。if/else

このような:

    AlertDialog.Builder alertDialogBuilder;
    if
    (outsideButton.isChecked()){
        //do what you want
        alertDialogBuilder = new AlertDialog.Builder(
                    context);
        // ...
    }
    else if
    (insideButton.isChecked()){
        //do what you want 
        alertDialogBuilder = new AlertDialog.Builder(
                context);
        // ...
    }
        // create alert dialog
        AlertDialog alertDialog = alertDialogBuilder.create();
        // show it
    alertDialog.show();
于 2012-06-28T18:00:05.890 に答える
0

if else の前にこれを行います。

AlertDialog.Builder alertDialogBuilder = null;

そしてあなたを交換してください

AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(context);

alertDialogBuilder = new AlertDialog.Builder(context);
于 2012-06-28T18:01:19.410 に答える