首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么ad.show()会失败?

为什么ad.show()会失败?
EN

Stack Overflow用户
提问于 2015-08-27 04:54:37
回答 1查看 329关注 0票数 0

我有一个方法,我想在其中创建一个AlertDialog,但是当我调用它时,当它到达ad.show时,应用程序停止工作

代码语言:javascript
复制
public void showSettingsAlert() {
    AlertDialog.Builder alertDialog = new AlertDialog.Builder(mContext);

    // Setting Dialog Title
    alertDialog.setTitle("GPS is necessary for Traffic Finder");

    // Setting Dialog Message
    alertDialog.setMessage("GPS is not enabled. Do you want to go to settings menu?");

    // On pressing Settings button
    alertDialog.setPositiveButton("Settings", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int id) {
            Intent intent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
            //mContext.startActivity(intent);
            startActivity(intent);
        }
    });

    // on pressing cancel button
    alertDialog.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int id) {
            dialog.cancel();
        }
    });

    // Create Alert Dialog
    AlertDialog ad= alertDialog.create();

    // Showing Alert Message
    ad.show();
}

我明白了:

代码语言:javascript
复制
08-26 20:47:11.462  28940-29005/? E/AndroidRuntime﹕ FATAL EXCEPTION: IntentService[CoordinatesService]
Process: com.example.manos.trafficfinder, PID: 28940
android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application
        at android.view.ViewRootImpl.setView(ViewRootImpl.java:566)
        at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:282)
        at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:85)
        at android.app.Dialog.show(Dialog.java:298)
        at com.example.manos.trafficfinder.GPSTracker.showSettingsAlert(GPSTracker.java:182)
        at com.example.manos.trafficfinder.GeographicCoordinates.getLatitudeString(GeographicCoordinates.java:32)
        at com.example.manos.trafficfinder.DataManagement.addPosition(DataManagement.java:116)
        at com.example.manos.trafficfinder.CoordinatesService.onHandleIntent(CoordinatesService.java:28)
        at android.app.IntentService$ServiceHandler.handleMessage(IntentService.java:65)
        at android.os.Handler.dispatchMessage(Handler.java:102)
        at android.os.Looper.loop(Looper.java:135)
        at android.os.HandlerThread.run(HandlerThread.java:61)
EN

回答 1

Stack Overflow用户

发布于 2015-08-27 05:01:20

传递给AlertDialog.BuilderContext似乎不正确。尝试使用YourClass.this而不是mContext

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32236531

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档