关于AlertDialog中不可思议的dialog.show()异常出错的问题的解决
来源:互联网 发布:淘宝客软件多少钱 编辑:程序博客网 时间:2024/05/03 21:00
学习java连带着学习android应用开发应该差不多两个星期了吧,开始有点儿慢慢适应了,现在着手尝试修改别人的程序代码来创建自己所需要的东西,但是最近需要在一个popupwindow窗口中启动一个dialog,我是先尝试着把这篇博客里给的简单代码贴到我的程序里面,http://blog.163.com/wangkangming2008@126/blog/static/7827792820110910392369/这是链接
代码如下
public void Login() {LayoutInflater factory=LayoutInflater.from(main.this);final View v1=factory.inflate(R.layout.login,null); //R.layout.login与login.xml文件名对应,把login转化成View类型 AlertDialog.Builder builder = new AlertDialog.Builder(main.this); AlertDialog dialog = builder.create();//可能是这个问题导致的,context不知道传的对不对,研究一 dialog.setView(v1);//设置使用View //设置控件应该用v1.findViewById 否则出错 dialog.show();}
但是logcat会打印出出错的信息:
09-21 07:23:36.023: ERROR/AndroidRuntime(1550): FATAL EXCEPTION: main
09-21 07:23:36.023: ERROR/AndroidRuntime(1550): android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application
09-21 07:23:36.023: ERROR/AndroidRuntime(1550): at android.view.ViewRoot.setView(ViewRoot.java:509)
09-21 07:23:36.023: ERROR/AndroidRuntime(1550): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:177)
09-21 07:23:36.023: ERROR/AndroidRuntime(1550): at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:91)
09-21 07:23:36.023: ERROR/AndroidRuntime(1550): at android.app.Dialog.show(Dialog.java:241)
09-21 07:23:36.023: ERROR/AndroidRuntime(1550): at com.mydictionary.www.CustomMenuView.login(CustomMenuView.java:173)
09-21 07:23:36.023: ERROR/AndroidRuntime(1550): at com.mydictionary.www.CustomMenuView.access$3(CustomMenuView.java:146)
09-21 07:23:36.023: ERROR/AndroidRuntime(1550): at com.mydictionary.www.CustomMenuView$2.onClick(CustomMenuView.java:139)
09-21 07:23:36.023: ERROR/AndroidRuntime(1550): at android.view.View.performClick(View.java:2408)
09-21 07:23:36.023: ERROR/AndroidRuntime(1550): at android.view.View$PerformClick.run(View.java:8816)
09-21 07:23:36.023: ERROR/AndroidRuntime(1550): at android.os.Handler.handleCallback(Handler.java:587)
09-21 07:23:36.023: ERROR/AndroidRuntime(1550): at android.os.Handler.dispatchMessage(Handler.java:92)
09-21 07:23:36.023: ERROR/AndroidRuntime(1550): at android.os.Looper.loop(Looper.java:123)
09-21 07:23:36.023: ERROR/AndroidRuntime(1550): at android.app.ActivityThread.main(ActivityThread.java:4627)
09-21 07:23:36.023: ERROR/AndroidRuntime(1550): at java.lang.reflect.Method.invokeNative(Native Method)
09-21 07:23:36.023: ERROR/AndroidRuntime(1550): at java.lang.reflect.Method.invoke(Method.java:521)
09-21 07:23:36.023: ERROR/AndroidRuntime(1550): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868)
09-21 07:23:36.023: ERROR/AndroidRuntime(1550): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626)
09-21 07:23:36.023: ERROR/AndroidRuntime(1550): at dalvik.system.NativeStart.main(Native Method)
最后自己添加Log.d(),把问题锁定到了dialog.show()这句代码上了,感觉应该还是跟传入的参数有关系,特别是main.this,开始尝试this,getApplicationContext(),,,etc,感觉这个AlertDialog的show方法应该有些问题,肯定有人遇到过这种情况,最后在参考这篇文章的http://stackoverflow.com/questions/1561803/android-progressdialog-show-crashes-with-getapplicationcontext的情况下顺利解决,解决的办法是把onCelick方法传入的View对象也给传进login方法中去,然后使用其getContext方法获取其context,OK,大功告成,终于见到了心仪已久的AlertDialog了
感觉解决起来是挺不容易的,困了将近两天了才终于解决这个问题,不容易,这次也让我学会了使用logcat窗口调试程序了
点击FullScreen按钮出现此界面,Cool!!
希望能给遇到这个问题的人一些参考
- 关于AlertDialog中不可思议的dialog.show()异常出错的问题的解决
- 解决不可思议的问题
- 不可思议的异常。
- AlertDialog或者Dialog显示的内容异常
- 自定义AlertDialog,以及解决自定义Dialog中EditText不能弹出输入法的问题
- 关于tomcat的种种问题,异常,出错
- AlertDialog的create和show
- 最不可思议的方法解决ubuntu7.10的声音问题
- 不可思议的C++,关于继承
- 关于AlertDialog位置的问题
- 关于CI框架 Session 的问题的 不可思议
- 关于AlertDialog弹出后,触摸其他区域Dialog消失的问题
- 由AlertDialog想到的PhoneWindow, Dialog的覆盖问题
- 关于Android中Dialog show跟dismiss时出现crash的解决办法
- 关于Android中Dialog show跟dismiss时出现crash的解决办法
- LoadRunner测试中遇见的不可思议的问题及其解决方法
- 关于Android中AlertDialog的使用问题:点击AlertDialog外部不消失的代码操作
- 有关android中“Activity伪装”的Dialog问题的解决
- Live Migrate a GuestVM
- 注册或者点击按钮时,防止用户重复提交数据
- 使用 jsoup 对 HTML 文档进行解析和操作
- 数据裤的开始部分
- java中调用groovy脚本
- 关于AlertDialog中不可思议的dialog.show()异常出错的问题的解决
- Security-Enhanced Linux(SELinux)
- 利用iptables+l7-filter+opendpi封QQ和迅雷
- Activity、PopupWindow 进入,退出动画
- VM8.0下安装遇到了问题“windows cannot read the<product key> setting from the unattend answer file”解决方法
- 静态变量和实例变量的区别?
- android的自定义样式的radiobutton
- 汇编原子操作实现(转载)
- Linq to SQL之使用事务