我是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" />
答案 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);