如何解决Android接受对话框
我想在单击按钮后显示带有接受/取消的对话框
O(n)
当我单击一个按钮时,我的应用程序崩溃了。如何找到错误?
日志
temp.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final AlertDialog.Builder dialog= new AlertDialog.Builder(getApplicationContext());
dialog.setTitle("title");
dialog.setMessage("Message");
dialog.setPositiveButton("Ok",null);
dialog.setNegativeButton("Cancel",null);
dialog.create().show();
}
});
好吧,我改变了
2020-10-15 14:35:26.003 20221-20221/com.example.aplikacjakurierska E/AndroidRuntime: FATAL EXCEPTION: main
Process: com.example.aplikacjakurierska,PID: 20221
android.view.WindowManager$BadTokenException: Unable to add window -- token null is not valid; is your activity running?
at android.view.ViewRootImpl.setView(ViewRootImpl.java:1068)
at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:409)
at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:109)
at android.app.Dialog.show(Dialog.java:340)
at com.example.aplikacjakurierska.Manager.ManagerActivity$4.onClick(ManagerActivity.java:88)
at android.view.View.performClick(View.java:7448)
at android.view.View.performClickInternal(View.java:7425)
at android.view.View.access$3600(View.java:810)
at android.view.View$PerformClick.run(View.java:28305)
at android.os.Handler.handleCallback(Handler.java:938)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:223)
at android.app.ActivityThread.main(ActivityThread.java:7656)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:592)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:947)
上
getApplicationContext()
而且有效。但是为什么它不能与getApplicationContext()一起使用?
解决方法
您必须在setPositiveButton()
和setNegativeButton()
中传递一个侦听器,而不是一个空值。您可以使用匿名类来完成此操作,例如以下示例:
final AlertDialog.Builder dialog= new AlertDialog.Builder(getApplicationContext());
dialog.setTitle("title");
dialog.setMessage("Message");
dialog.setPositiveButton("Ok",new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog,int which) {
// place your actions here
}
});
dialog.setNegativeButton("Cancel",int which) {
// place your actions on cancle here
}
});
dialog.create().show();
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。