android setNegativeButton到自定义对话框

时间:2014-08-11 19:38:30

标签: android android-alertdialog android-dialog

我有自己的自定义对话框:

public class BerekenDialog extends Dialog{
    public BerekenDialog(Context context) {
        super(context);
        setContentView(R.layout.bereken_dialog_layout);

        this.setTitle("Bereken");
        //dostuff.
    }
}

我用这个开始我的对话:

BerekenDialog bd = new BerekenDialog (this);
bd.show();

有没有办法将alertdialog中的negative,positive和neutral按钮添加到我的自定义对话框?

2 个答案:

答案 0 :(得分:2)

get data from some spinners, make a calculation with the data and display it

您可以在不创建自定义对话框的情况下执行此操作,只有在构建器中创建正面和负面按钮时才会生成正面和负面按钮。没有办法实现它,而是你可以使用按钮在xml布局中创建自己的。

创建alertdialog而不使用自定义的:

    AlertDialog a = new AlertDialog.Builder(this)
    .setTitle("Bereken")
    .setView(getLayoutInflater().inflate( R.layout.bereken_dialog_layout,null))
    .setPositiveButton("Ok", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int which) { 
            // ok button
        }
     })
    .setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int which) { 
            // cancel button
        }
     }).create();
    TextView tv = (TextView)a.findViewById(r.id.your_id); //use the instance of textview from layout of dialog
    tv.setText("update"); //set is before displaying
    a.show();

答案 1 :(得分:0)

您可以添加2个按钮,使它们看起来像AlerDialog.Builder中的按钮。

enter image description here

您可以创建2个按钮,只需更改其背景颜色并在其周围添加一些边框即可。这可以通过创建drawable(button_border_shape)来完成:

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
    <stroke android:width="1dp" android:color="#bdbdbd" />
    <solid android:color="#f2f2f2" />
</shape>

然后,您需要将此drawable作为背景颜色应用于自定义对话框xml中的按钮:

android:background="@drawable/button_border_shape"