转载自:http://hi.baidu.com/luoziding/blog/item/739388c97b73c1e153664f6b.html


按照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. 【android】android 开发错误集锦4月
  2. Android requires compiler compliance level 5.0 or 6.0. 错误
  3. Android最经典的入门手册
  4. Mono for Android 设计器错误:Disconnected from layout renderer
  5. Android开发错误信息收集
  6. android中常见的错误及解决办法
  7. android webview 自定义404错误页面!
  8. Android 使用弹出对话框,报Unable to add window错误
  9. Android Studio 常见错误 之unable to find valid certification

随机推荐

  1. Browsing Android(安卓)Source in Eclips
  2. Android实现图片反转、翻转、旋转、放大
  3. Android(安卓)自定义ToolBar
  4. Android中九种dialog对话框代码
  5. Android—常用控件(四)日期/时间控件
  6. Android:关于Configurations
  7. UI tool for Android(安卓)--- droiddraw
  8. Android(安卓)获取屏幕分辨率
  9. Android(安卓)init process
  10. Android: Java中的delay