How to put two buttons on alert box

一笑奈何 提交于 2019-12-12 01:29:34

问题


I have made a program of simple alert box in android.now i have to put two buttons "OK" and "cancel" but when i run the program it only shows ,the "cancel" button...my code is as below:

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  
    }
});
    }
}

thank you in advance.


回答1:


I had the same problem. This is what is did.

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  
    }
});
    }
}

This works fine. You have to number the buttons for alert-box.




回答2:


Simple alert

 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;

    }

usage

AlertDialog al = AskOption();
al.show();



回答3:


change like this we arrange setPositiveButton isok and setNegativeButton is cancel buttons.

 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();
        }
    });



回答4:


The correct way to add buttons:

For Positive

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

For Negative

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 Alert Dialog Example




回答5:


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();

}




回答6:


You can use AlertDialog.Builder class. There are some methods to put button on the dialog using this builder class.

  1. setPositiveButton
  2. setNegativeButton
  3. setNeutralButton



回答7:


you need to use setPositiveButton() and setnegativeButton() like,

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  
    }
});
    }
}


来源:https://stackoverflow.com/questions/14472991/how-to-put-two-buttons-on-alert-box

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!