Android 如何从Dialogbox中的单击方法获取上下文
我试图开发一个简单的Sqlite应用程序来理解Crud操作。我有图书类用户应该能够选择Insert update和delete。当用户想要删除数据时,会询问用户是否想要删除图书数据。alertdialog box上有两个按钮Yes或No。如果用户单击setPositiveButton,则会实现删除操作。但我无法在CodeOnClick方法中获取上下文Android 如何从Dialogbox中的单击方法获取上下文,android,Android,我试图开发一个简单的Sqlite应用程序来理解Crud操作。我有图书类用户应该能够选择Insert update和delete。当用户想要删除数据时,会询问用户是否想要删除图书数据。alertdialog box上有两个按钮Yes或No。如果用户单击setPositiveButton,则会实现删除操作。但我无法在CodeOnClick方法中获取上下文 AlertDialog.Builder alertDialog = new AlertDialog.Builder(KitapDetay.thi
AlertDialog.Builder alertDialog = new AlertDialog.Builder(KitapDetay.this);
alertDialog.setTitle("Alert");
alertDialog.setMessage("Do you want to delete book ?");
alertDialog.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
BookRepo repo = new BookRepo(this);
repo.deleteBook(id);
Toast.makeText(getApplicationContext(), "Book is deleted successfully", Toast.LENGTH_SHORT).show();
Intent intent = new Intent(getApplicationContext(), MainActivity.class);
startActivity(intent);
finish();
}
});
试试这个,它可以工作:
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
context);
alertDialogBuilder.setTitle("Your Title");
alertDialogBuilder
.setMessage("Click yes to exit!")
.setCancelable(false)
.setPositiveButton("Yes",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int id) {
// if this button is clicked, close
// current activity
MainActivity.this.finish();
}
})
.setNegativeButton("No",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int id) {
dialog.cancel();
}
});
// create an alert dialog object
AlertDialog alertDialog = alertDialogBuilder.create();
// show alert dialog here
alertDialog.show();
- 使用活动的上下文,如“MainActivity.this”
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
context);
alertDialogBuilder.setTitle("Your Title");
alertDialogBuilder
.setMessage("Click yes to exit!")
.setCancelable(false)
.setPositiveButton("Yes",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int id) {
// if this button is clicked, close
// current activity
MainActivity.this.finish();
}
})
.setNegativeButton("No",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int id) {
dialog.cancel();
}
});
// create an alert dialog object
AlertDialog alertDialog = alertDialogBuilder.create();
// show alert dialog here
alertDialog.show();
- 使用活动的上下文,如“MainActivity.this”
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
context);
alertDialogBuilder.setTitle("Your Title");
alertDialogBuilder
.setMessage("Click yes to exit!")
.setCancelable(false)
.setPositiveButton("Yes",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int id) {
// if this button is clicked, close
// current activity
MainActivity.this.finish();
}
})
.setNegativeButton("No",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int id) {
dialog.cancel();
}
});
// create an alert dialog object
AlertDialog alertDialog = alertDialogBuilder.create();
// show alert dialog here
alertDialog.show();
- 使用活动的上下文,如“MainActivity.this”
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
context);
alertDialogBuilder.setTitle("Your Title");
alertDialogBuilder
.setMessage("Click yes to exit!")
.setCancelable(false)
.setPositiveButton("Yes",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int id) {
// if this button is clicked, close
// current activity
MainActivity.this.finish();
}
})
.setNegativeButton("No",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int id) {
dialog.cancel();
}
});
// create an alert dialog object
AlertDialog alertDialog = alertDialogBuilder.create();
// show alert dialog here
alertDialog.show();
- 使用活动的上下文,如“MainActivity.this”
<ActivityName>.this
。这个
因为您处于匿名对象定义中,所以无法实际引用适用于该活动的方法。在您的情况下,如果您希望从onClick中获取上下文,则可以使用以下两种方法之一:
1) 将上下文存储到活动onCreate中的全局变量中,以便OnClick可以使用它
2) 在OnClick中明确引用您的活动,如下所示:
<ActivityName>.this
。这个
因为您处于匿名对象定义中,所以无法实际引用适用于该活动的方法。在您的情况下,如果您希望从onClick中获取上下文,则可以使用以下两种方法之一:
1) 将上下文存储到活动onCreate中的全局变量中,以便OnClick可以使用它
2) 在OnClick中明确引用您的活动,如下所示:
<ActivityName>.this
。这个
因为您处于匿名对象定义中,所以无法实际引用适用于该活动的方法。在您的情况下,如果您希望从onClick中获取上下文,则可以使用以下两种方法之一:
1) 将上下文存储到活动onCreate中的全局变量中,以便OnClick可以使用它
2) 在OnClick中明确引用您的活动,如下所示:
<ActivityName>.this
。这个
谢谢你,亚历克斯。链接非常有用。这个:谢谢Alex。链接非常有用。这个:谢谢Alex。链接非常有用。这个:谢谢Alex。链接非常有用。