2017-10-07 81 views
-2

我是新来的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

尝试changi ng getApplicationContext()到YourActivity.this –

回答

1

试试这个我的朋友

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

简单而直接。刚试过这个,它就像一个魅力。 –

+1

谢谢你的提示! –

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