我的提醒对话不起作用?

时间:2017-10-07 17:28:21

标签: android alertdialog

我是Android开发领域的新手,所以尝试了AlertDialog框,我遇到了麻烦。 这是我AlertDialog的部分代码。

public void teacherLogin(View view)
{

    AlertDialog.Builder alert = new 
    AlertDialog.Builder(getApplicationContext());
    alert.setTitle("Login");
    alert.setPositiveButton("Login", new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialogInterface, int i) {

            Toast.makeText(getApplicationContext(), "you clicked login", 
            Toast.LENGTH_SHORT).show();

        }
    });
    alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() 
    {
        @Override
        public void onClick(DialogInterface dialogInterface, int i) {
            Toast.makeText(getApplicationContext(), "Cancelled", 
           Toast.LENGTH_SHORT).show();
        }
    });

    AlertDialog dialog = alert.create();
    dialog.setCancelable(false);
    dialog.setCanceledOnTouchOutside(false);
    dialog.show();
}

这是Button的xml代码,它调用了teacherLogin()方法

<Button
    android:id="@+id/teacher_loginbtn"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="28dp"
    android:onClick="teacherLogin"
    android:text="Teacher's Login"
    android:layout_alignParentTop="true"
    android:layout_alignParentRight="true"
    android:layout_alignParentEnd="true"
    android:layout_marginRight="22dp"
    android:layout_marginEnd="22dp" />

2 个答案:

答案 0 :(得分:3)

尝试将getApplicationContext()更改为YourActivity.this

public void teacherLogin(View view)
{

AlertDialog.Builder alert = new 
AlertDialog.Builder(YourActivity.this);
alert.setTitle("Login");
alert.setPositiveButton("Login", new DialogInterface.OnClickListener() {
    @Override
    public void onClick(DialogInterface dialogInterface, int i) {

        Toast.makeText(YourActivity.this, "you clicked login", 
        Toast.LENGTH_SHORT).show();

    }
});
alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() 
{
    @Override
    public void onClick(DialogInterface dialogInterface, int i) {
        Toast.makeText(YourActivity.this, "Cancelled", 
       Toast.LENGTH_SHORT).show();
    }
});

AlertDialog dialog = alert.create();
dialog.setCancelable(false);
dialog.setCanceledOnTouchOutside(false);
dialog.show();
 }

答案 1 :(得分:1)

试试这个我的朋友

AlertDialog.Builder alert = new AlertDialog.Builder(this);