按照Android手册上的自定义Dialog章节学习使用自定义Dialog是出现如下错误:

android.view.WindowManager$BadTokenException: Unableto add window--tokennullisnotforan application

手册上代码逻辑如下:

LayoutInflater inflater = (LayoutInflater)getApplicationContext().getSystemService(LAYOUT_INFLATER_SERVICE);

View layout = inflater.inflate(R.layout.custom_dialog,

(ViewGroup)findViewById(R.id.layout_root));

TextView tv = (TextView)layout.findViewById(R.id.custom_text);

tv.setText("Hello, this is a custom dialfo");

ImageView iv = (ImageView)layout.findViewById(R.id.custom_image);

iv.setImageResource(R.drawable.icon);

builder = new AlertDialog.Builder(getApplicationCOntext());

builder.setView(layout);

dialog = builder.create();

将红色标记语句改为builder = new AlertDialog.Builder(this);

错误原因:

You need to use your Activty as the Context for the Dialog not the Application.

Android is looking for a view to display the Dialog in and the Application does not have one but yourActivity will. The Application is an object which ties your app together and has a Context as it knows about which locale you're running in and so on, but it relies on Activities to display things to the user.

更多相关文章

  1. java.lang.ClassCastException:org.apache.harmony.luni.interna
  2. android WebView loadData不能解析(找不到网页)
  3. Android调试错误-No resource identifier found for attribute '
  4. 〖Android〗联想K860 logcat CM11.0出错信息及解决
  5. Android(安卓)requires compiler compliance level 5.0 or 6.0.
  6. Android(安卓)studio升级后ndk项目编译打包问题
  7. android 自定义viewR.styleable找不到或者是报错!
  8. fedora 18 源码编译 android 4.0.1
  9. (OK) 编译batman-adv.ko—成功—android—cm11源码—下载

随机推荐

  1. Android(安卓)WebView如何加载assets下的
  2. [转]NDK中log输出方法
  3. Android细节问题总结(二)
  4. android编译系统的makefile文件Android.m
  5. Android(安卓)Gradle 基本模板
  6. android jpeg库的简单使用
  7. 【Android】Activity之间传递信息
  8. 配置android sd卡
  9. 安卓开机界面修改
  10. Android(安卓)Java笔试题(带大部分答案)