gpt4 book ai didi

android - 如何使用另一个对象显示 AlertDialog

转载 作者:行者123 更新时间:2023-11-29 22:24:10 26 4
gpt4 key购买 nike

我用一些我常用的东西创建了一个类,比如 toast 或对话框。我将这个类命名为 MyUtils。我在 MyUtils 中有以下代码行。其中 subYesNoDialogResult 是 bool 类型的私有(private)变量。

public void subYesNoDialog(Context appctx,String title,String mymessage)    {
AlertDialog.Builder builder = new AlertDialog.Builder(appctx);
builder.setMessage(mymessage)
.setTitle(title)
.setCancelable(false)
.setPositiveButton(android.R.string.yes,
new DialogInterface.OnClickListener(){
public void onClick(DialogInterface dialog, int id) {
subYesNoDialogResult = true;
}
})
.setNegativeButton(android.R.string.no,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
subYesNoDialogResult = false;
dialog.cancel();
}
});
AlertDialog alert = builder.create();
alert.show();
}

我有另一个类用于帮助主要 Activity 类达到特定目的。我称这个类为 MyDbHelper。我试图调用上面的函数来显示一个是/否对话框。这专门用于在 MyDbHelper 类中执行某些过程之前获取用户的输入以做出决定。但是我在这样做时得到了 NullPointerException。这是我的 logcat 输出。

I/ActivityManager(   67): Starting activity: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] flg=0x10000000 cmp=com.xxx.geolog/.GeologActivity }
D/AndroidRuntime( 676): Shutting down VM
D/dalvikvm( 676): Debugger has detached; object registry had 1 entries
I/ActivityManager( 67): Start proc com.xxx.geolog for activity com.xxx.geolog/.GeologActivity: pid=683 uid=10040 gids={}
I/AndroidRuntime( 676): NOTE: attach of thread 'Binder Thread #3' failed
D/dalvikvm( 33): GC_EXPLICIT freed 244 objects / 9464 bytes in 704ms
D/dalvikvm( 33): GC_EXPLICIT freed 2 objects / 64 bytes in 350ms
D/dalvikvm( 33): GC_EXPLICIT freed 2 objects / 48 bytes in 536ms
W/GpsLocationProvider( 67): Duplicate add listener for uid 10040
W/WindowManager( 67): Attempted to add window with non-application token WindowToken{44f7d2a0 token=null}. Aborting.
D/AndroidRuntime( 683): Shutting down VM
W/dalvikvm( 683): threadid=1: thread exiting with uncaught exception (group=0x4001d800)
E/AndroidRuntime( 683): FATAL EXCEPTION: main
E/AndroidRuntime( 683): android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application
E/AndroidRuntime( 683): at android.view.ViewRoot.setView(ViewRoot.java:509)
E/AndroidRuntime( 683): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:177)
E/AndroidRuntime( 683): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
E/AndroidRuntime( 683): at android.app.Dialog.show(Dialog.java:241)
E/AndroidRuntime( 683): at com.xxx.geolog.SubLocationListener.onProviderDisabled(SubLocationListener.java:33)
E/AndroidRuntime( 683): at android.location.LocationManager$ListenerTransport._handleMessage(LocationManager.java:204)
E/AndroidRuntime( 683): at android.location.LocationManager$ListenerTransport.access$000(LocationManager.java:124)
E/AndroidRuntime( 683): at android.location.LocationManager$ListenerTransport$1.handleMessage(LocationManager.java:140)
E/AndroidRuntime( 683): at android.os.Handler.dispatchMessage(Handler.java:99)
E/AndroidRuntime( 683): at android.os.Looper.loop(Looper.java:123)
E/AndroidRuntime( 683): at android.app.ActivityThread.main(ActivityThread.java:4627)
E/AndroidRuntime( 683): at java.lang.reflect.Method.invokeNative(Native Method)
E/AndroidRuntime( 683): at java.lang.reflect.Method.invoke(Method.java:521)
E/AndroidRuntime( 683): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
E/AndroidRuntime( 683): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
E/AndroidRuntime( 683): at dalvik.system.NativeStart.main(Native Method)
W/ActivityManager( 67): Force finishing activity com.xxx.geolog/.GeologActivity
W/ActivityManager( 67): Activity pause timeout for HistoryRecord{45030820 com.xxx.geolog/.GeologActivity}

我该如何解决这个问题?我做错了什么吗?

最佳答案

您是否尝试使用应用程序上下文来显示对话框?如果是这样,请尝试使用 Activity 上下文来查看它是否有所作为。

关于android - 如何使用另一个对象显示 AlertDialog,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6404133/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com