如何在自定义Android对话框中设置按钮?

时间:2018-09-26 06:41:30

标签: java android alertdialog

我需要为自定义对话框设置正面和负面的按钮。

    public void newVisitorDialog(String title, String msg) {
    Dialog visitorDialog = new Dialog(FindVisitorMobile.this);
    visitorDialog.setCanceledOnTouchOutside(true);

    visitorDialog.setContentView(R.layout.new_visitor_dialog);
    TextView titleText = visitorDialog.findViewById(R.id.title);
    titleText.setText(title);
    TextView body = visitorDialog.findViewById(R.id.visitorData);
    body.setText(msg);
    visitorDialog.show();
}

谢谢

5 个答案:

答案 0 :(得分:0)

执行以下操作:

// Use the Builder class for convenient dialog construction
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setMessage(R.string.dialog_fire_missiles)
       .setPositiveButton(R.string.fire, new DialogInterface.OnClickListener() {
           public void onClick(DialogInterface dialog, int id) {
               // FIRE ZE MISSILES!
           }
       })
       .setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
           public void onClick(DialogInterface dialog, int id) {
               // User cancelled the dialog
           }
       });
// Create the AlertDialog object and return it
return builder.create();

答案 1 :(得分:0)

对于自定义对话框,您应该在R.layout.new_dialog_visitor中包括两个按钮。

然后在您的newVisitorDialog方法中,找到带有.findViewById的按钮,并在其上调用.setOnClickListener(..)

答案 2 :(得分:0)

在Xml布局中添加负号和正号按钮。

找到按钮的视图。

为肯定按钮和否定按钮设置setOnClickListener。

    Button negative = (Button) visitorDialog.findViewById(R.id.negative_btn);
    Button positive = (Button) visitorDialog.findViewById(R.id.positive_btn);

    negative.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            //process your code here for negative
        }
    });

   positive.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
           //process your code here for positive
        }
    });

答案 3 :(得分:0)

如果是自定义对话框,则可以为其创建另一个布局
这是link  它显示了如何向对话框中添加按钮,文本视图,图像。希望有帮助

答案 4 :(得分:0)

我发现最好的方法是将对话框设置为类中的私有变量。

    private Dialog visitorDialog;
public void newVisitorDialog(String title, String msg) {
    visitorDialog = new Dialog(FindVisitorMobile.this);
    visitorDialog.setCanceledOnTouchOutside(true);

    visitorDialog.setContentView(R.layout.new_visitor_dialog);
    TextView titleText = visitorDialog.findViewById(R.id.title);
    titleText.setText(title);
    TextView body = visitorDialog.findViewById(R.id.visitorData);
    body.setText(msg);
    visitorDialog.show();
}

/**
 * Cancel the visitor dialog
 * @param view
 */
public void dialogCancel(View view){
    visitorDialog.dismiss();
}