Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/178.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Android中为AlertDialog创建Appwide方法_Android_Dialog_Alert_Android Alertdialog_Android Context - Fatal编程技术网

如何在Android中为AlertDialog创建Appwide方法

如何在Android中为AlertDialog创建Appwide方法,android,dialog,alert,android-alertdialog,android-context,Android,Dialog,Alert,Android Alertdialog,Android Context,在我的应用程序中有几个地方,我希望弹出一个警报,向用户提问,然后用所选答案获得回调 我希望在自定义非活动/片段对象中发生这种情况 我试图在我的类中创建一个方法,该方法派生自显示AlertDialog的应用程序,但我总是遇到上下文问题并崩溃。 这是我的应用程序类中的一个片段,其上下文为getApplicationContext() 我需要将上下文设置为什么,以便它不会崩溃?还是有更好的方法来完成这一切 谢谢, Alec您只需将上下文也传递给静态方法。Android中的静态助手方法通常是这样工作的。

在我的应用程序中有几个地方,我希望弹出一个警报,向用户提问,然后用所选答案获得回调

我希望在自定义非活动/片段对象中发生这种情况

我试图在我的类中创建一个方法,该方法派生自显示AlertDialog的应用程序,但我总是遇到上下文问题并崩溃。 这是我的应用程序类中的一个片段,其上下文为getApplicationContext()

我需要将上下文设置为什么,以便它不会崩溃?还是有更好的方法来完成这一切

谢谢,
Alec

您只需将
上下文
也传递给静态方法。Android中的静态助手方法通常是这样工作的。如果您试图在应用程序的非ui部分使用警报对话框,则必须有某种方式来访问您的上下文。好的,谢谢,我已将其传递到上下文中,当它被非活动类调用时,这并不能解决问题,但适用于其他情况。
public static void showAlert(String title, String message)
{
     AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
         context);

        // set title
        alertDialogBuilder.setTitle("Your Title");

        // set dialog message
        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
                }
              })
            .setNegativeButton("No",new DialogInterface.OnClickListener() {
                public void onClick(DialogInterface dialog,int id) {
                    // if this button is clicked, just close
                    // the dialog box and do nothing
                    dialog.cancel();
                }
            });

            // create alert dialog
            AlertDialog alertDialog = alertDialogBuilder.create();

            // show it
            alertDialog.show();
}