0

私はandroid.nowで単純なアラートボックスのプログラムを作成しました。「OK」と「キャンセル」の2つのボタンを配置する必要がありますが、プログラムを実行すると「キャンセル」ボタンしか表示されません...私のコードは次のとおりです。

Main.java

public class MainActivity extends Activity {
Button btn;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);
    btn = (Button)findViewById(R.id.button);
    final AlertDialog alertDialog = new AlertDialog.Builder(this).create();
    btn.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub

        alertDialog.setTitle("Title");
        alertDialog.setMessage("Message");
        alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
           public void onClick(DialogInterface dialog, int which) {
              // TODO Add your code for the button here.
               Toast.makeText(getApplicationContext(), "well come", 1).show();
           }
        });
        alertDialog.setButton("cancel",new DialogInterface.OnClickListener() {

            @Override
            public void onClick(DialogInterface dialog, int which) {
                // TODO Auto-generated method stub
                Toast.makeText(getApplicationContext(), "yoy have pressed cancel", 1).show();
            }
        });
        // Set the Icon for the Dialog
        alertDialog.setIcon(R.drawable.ic_launcher);
        alertDialog.show();
        // see http://androidsnippets.com/simple-alert-dialog-popup-with-title-message-icon-and-button  
    }
});
    }
}

前もって感謝します。

4

7 に答える 7

4

私も同じ問題を抱えていました。これが行われていることです。

public class MainActivity extends Activity {
    Button btn;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);
        btn = (Button)findViewById(R.id.button);
        final AlertDialog alertDialog = new AlertDialog.Builder(this).create();
        btn.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
            alertDialog.setTitle("Title");
            alertDialog.setMessage("Message");
            alertDialog.setButton("OK", new DialogInterface.OnClickListener() {
               public void onClick(DialogInterface dialog, int which) {
                   Toast.makeText(getApplicationContext(), "well come", 1).show();
               }
            });
        alertDialog.setButton2("cancel",new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(getApplicationContext(), "yoy have pressed cancel", 1).show();
            }
        });
        // Set the Icon for the Dialog
        alertDialog.setIcon(R.drawable.ic_launcher);
        alertDialog.show();
        // see http://androidsnippets.com/simple-alert-dialog-popup-with-title-message-icon-and-button  
    }
});
    }
}

これは正常に機能します。アラートボックスのボタンに番号を付ける必要があります。

于 2013-01-23T06:44:49.830 に答える
2

簡易アラート

 private AlertDialog AskOption()
 {
    AlertDialog myQuittingDialogBox =new AlertDialog.Builder(this) 
        //set message, title, and icon
        .setTitle("Title") 
        .setMessage("Message") 
        .setIcon(R.drawable.icon)

        .setPositiveButton("yes", new DialogInterface.OnClickListener() {

            public void onClick(DialogInterface dialog, int whichButton) { 

                //your code
            }   
        })

        .setNeutralButton("No", new DialogInterface.OnClickListener() { 
            public void onClick(DialogInterface dialog, int whichButton) { 

                dialog.dismiss();
         } 
        })

        .create();
        return myQuittingDialogBox;

    }

利用方法

AlertDialog al = AskOption();
al.show();
于 2013-01-23T05:28:31.470 に答える
1

このように変更すると、ボタンが配置setPositiveButtonoksetNegativeButtonますcancel

 final AlertDialog.Builder alertDialog= new AlertDialog.Builder(this);

 alertDialog.setPositiveButton("OK", new DialogInterface.OnClickListener() {
       public void onClick(DialogInterface dialog, int which) {
          // TODO Add your code for the button here.
           Toast.makeText(getApplicationContext(), "well come", 1).show();
       }
    });
    alertDialog.setNegativeButton("cancel",new DialogInterface.OnClickListener() {

        @Override
        public void onClick(DialogInterface dialog, int which) {
            // TODO Auto-generated method stub
            Toast.makeText(getApplicationContext(), "yoy have pressed cancel", 1).show();
        }
    });
于 2013-01-23T05:24:21.693 に答える
1

ボタンを追加する正しい方法:

ポジティブの場合

alertDialog.setPositiveButton("OK",new DialogInterface.OnClickListener() {
    public void onClick(DialogInterface dialog,int id) {
        // perform your action
    }
});

ネガティブの場合

alertDialog.setNegativeButton("Cancel",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();
    }
});

Androidアラートダイアログの例

于 2013-01-23T05:25:03.317 に答える
0
public void showDialog(Activity activity, String title, CharSequence message) {
AlertDialog.Builder builder = new AlertDialog.Builder(activity);
if (title != null)
    builder.setTitle(title);
builder.setMessage(message);
builder.setPositiveButton("OK", null);
        builder.setNegativeButton("Cancel", null);
builder.show();

}

于 2013-01-23T05:25:05.273 に答える
0

AlertDialog.Builderクラスを使用できます。このビルダー クラスを使用して、ダイアログにボタンを配置する方法がいくつかあります。

  1. setPositiveButton
  2. setNegativeButton
  3. setNeutralButton
于 2013-01-23T05:27:38.410 に答える
0

次のように setPositiveButton() と setnegativeButton() を使用する必要があります。

import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends Activity {
Button btn;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);
    btn = (Button)findViewById(R.id.button);
    final AlertDialog alertDialog = new AlertDialog.Builder(this).create();
btn.setOnClickListener(new OnClickListener() {

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub

        alertDialog.setTitle("Title");
        alertDialog.setMessage("Message");
        alertDialog.setPositiveButton("OK",new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog,int id) {
                    // if this button is clicked, close
                    // current activity
                     Toast.makeText(getApplicationContext(), "well come", 1).show();
                }
              });
        alertDialog.setNegativeButton("Cancel",new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog,int id) {
                    // if this button is clicked, just close
                    // the dialog box and do nothing
                     Toast.makeText(getApplicationContext(), "yoy have pressed cancel", 1).show();
                }
            });
        // Set the Icon for the Dialog
        alertDialog.setIcon(R.drawable.ic_launcher);
        alertDialog.show();
        // see http://androidsnippets.com/simple-alert-dialog-popup-with-title-message-icon-and-button  
    }
});
    }
}
于 2013-01-23T05:33:25.513 に答える