Android 如何从Dialogbox中的单击方法获取上下文

Android 如何从Dialogbox中的单击方法获取上下文,android,Android,我试图开发一个简单的Sqlite应用程序来理解Crud操作。我有图书类用户应该能够选择Insert update和delete。当用户想要删除数据时,会询问用户是否想要删除图书数据。alertdialog box上有两个按钮Yes或No。如果用户单击setPositiveButton,则会实现删除操作。但我无法在CodeOnClick方法中获取上下文 AlertDialog.Builder alertDialog = new AlertDialog.Builder(KitapDetay.thi

我试图开发一个简单的Sqlite应用程序来理解Crud操作。我有图书类用户应该能够选择Insert update和delete。当用户想要删除数据时,会询问用户是否想要删除图书数据。alertdialog box上有两个按钮Yes或No。如果用户单击setPositiveButton,则会实现删除操作。但我无法在CodeOnClick方法中获取上下文

 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”

因为您处于匿名对象定义中,所以无法实际引用适用于该活动的方法。在您的情况下,如果您希望从onClick中获取上下文,则可以使用以下两种方法之一:

1) 将上下文存储到活动onCreate中的全局变量中,以便OnClick可以使用它

2) 在OnClick中明确引用您的活动,如下所示:

<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。链接非常有用。