0

为什么编译器在下面的代码中显示 setPositiveButton 和 setNegativeButton 的错误。如果我使用 setButton 没有错误,但这只允许我在警报对话框上显示一个按钮。我想要2个按钮。根据许多教程,必须使用 setPositiveButton 和 setNegativeButton 设置两个按钮警报对话框。为什么这些有编译错误?

    public void onClick(View v) {

        AlertDialog alert = new AlertDialog.Builder(MainActivity.this).create();
        alert.setTitle("Confirm Edit");
        alert.setMessage("do you want to save edits?");

        alert.setPositiveButton("OK", new DialogInterface.OnClickListener() {

            public void onClick(DialogInterface dialog, int which) {
            // launches other activity if the user presses the OK button
                Intent myIntent = new Intent(MainActivity.this, TestScreen.class);
             MainActivity.this.startActivity(myIntent);

           Toast.makeText(MainActivity.this, "Edits saved", Toast.LENGTH_SHORT).show();

            }
        });

        alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {

            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(MainActivity.this, "Edits Canceled", Toast.LENGTH_SHORT).show();
                dialog.cancel();
            }
        });
        alert.show();


    }
});
4

1 回答 1

0

你的代码是正确的,只是你需要稍微改变一下。使用 Builder 类创建 AlertDialog。

Builder builder = new AlertDialog.Builder ( MainActivity.this ); 
builder.setTitle ( "Confirm Edit" ); 
builder.setMessage("do you want to save edits?");

builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {

            public void onClick(DialogInterface dialog, int which) {
            // launches other activity if the user presses the OK button
                Intent myIntent = new Intent(MainActivity.this, TestScreen.class);
             MainActivity.this.startActivity(myIntent);

           Toast.makeText(MainActivity.this, "Edits saved", Toast.LENGTH_SHORT).show();

            }
        });

        builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {

            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(MainActivity.this, "Edits Canceled", Toast.LENGTH_SHORT).show();
                dialog.cancel();
            }
        });


// Now finally showing Alert Dialog.
AlertDialog alert = builder.create(); 
alert.show();
于 2012-10-10T02:18:22.810 回答