Android 使用DialogAlert创建报警

Android 使用DialogAlert创建报警,android,android-alertdialog,Android,Android Alertdialog,是否可以在单击AlertDialog中的按钮时设置报警?我想在单击AlertDialog的snooze按钮时创建警报 builder.setNegativeButton("Snooze", new DialogInterface.OnClickListener() //@Override public void onClick(DialogInterface dialog, int which) { Intent i = new Intent(

是否可以在单击AlertDialog中的按钮时设置报警?我想在单击AlertDialog的snooze按钮时创建警报

builder.setNegativeButton("Snooze",  new DialogInterface.OnClickListener()  //@Override


        public void onClick(DialogInterface dialog, int which)  {

            Intent i = new Intent("com.example.servicealarmdemo2.demoactivity");


            PendingIntent operation = PendingIntent.getActivity(getActivity().getBaseContext(), 0, i, Intent.FLAG_ACTIVITY_NEW_TASK);
            AlarmManager alarmManager = (AlarmManager)getActivity().getSystemService(Context.ALARM_SERVICE);
            long time= System.currentTimeMillis();
            EditText text=(EditText)getActivity().findViewById(R.id.editText1);
            String str = text.getText().toString();
            long t=Long.parseLong(str);
             alarmManager.set(AlarmManager.RTC_WAKEUP,
                     time+( t*60*1000), operation);


        }
    });
错误:

11-22 19:52:23.018: E/AndroidRuntime(363): FATAL EXCEPTION: main
11-22 19:52:23.018: E/AndroidRuntime(363): java.lang.NullPointerException
11-22 19:52:23.018: E/AndroidRuntime(363):  at com.example.servicealarmdemo2.AlertDemo$2.onClick(AlertDemo.java:60)
11-22 19:52:23.018: E/AndroidRuntime(363):  at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:159)
11-22 19:52:23.018: E/AndroidRuntime(363):  at android.os.Handler.dispatchMessage(Handler.java:99)
11-22 19:52:23.018: E/AndroidRuntime(363):  at android.os.Looper.loop(Looper.java:123)
11-22 19:52:23.018: E/AndroidRuntime(363):  at android.app.ActivityThread.main(ActivityThread.java:3683)
11-22 19:52:23.018: E/AndroidRuntime(363):  at java.lang.reflect.Method.invokeNative(Native Method)
11-22 19:52:23.018: E/AndroidRuntime(363):  at java.lang.reflect.Method.invoke(Method.java:507)
11-22 19:52:23.018: E/AndroidRuntime(363):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
11-22 19:52:23.018: E/AndroidRuntime(363):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
11-22 19:52:23.018: E/AndroidRuntime(363):  at dalvik.system.NativeStart.main(Native Method)

看看这个。经历它,试着找出它,花很多时间在上面。当你把自己推向极限时,你学习得最好。然后当有人给出了一个好的回答,点击答案旁边的复选标记接受他们的答案。祝你好运,欢迎来到Android

getActivity().getBaseContext()
替换为
getActivity()

是的。签出,尝试,如果遇到困难,请返回。我已经尝试过,但警报对话框类的某些方法尚未定义,例如getBaseContext和GetSystemServices。它们显然是以其他方式定义的。只需发布带有错误的代码,我们将帮助您。我已经更新了代码,请检查上面的内容,我无法解释错误是“类型new DialogInterface.OnClickListener(){}的方法getBaseContext()未定义”感谢您的回复我以前看过本教程,但我希望在单击对话框界面上的负按钮时创建警报,因此这些不同我尝试使用所述方法设置警报,但没有成功:(AndroidWarrior,指向该教程的链接现在已断开。你能将我链接到工作教程还是只更新你的答案?我对此也很好奇。谢谢。我也尝试过,但没有成功:错误:“PendingEvent类型中的getActivity(Context,int,Intent,int)方法不适用于参数(new DialogInterface.OnClickListener(){},int,Intent,int)“此方法也未定义。问题是我无法获取PendingEvent的上下文,我只能检索片段/DialogFragment。我想我可以解决此问题:PendingEvent操作=PendingEvent.getActivity(getActivity().getBaseContext()),0,i,Intent.FLAG_ACTIVITY_NEW_TASK);我将测试它,希望它能工作如果它是一个片段,那么只有getActivity()能工作。你应该提到片段。是:(它给出一个NPE