转载自: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开发错误信息收集
  2. Mono for Android(安卓)设计器错误:Disconnected from layout ren
  3. Android(安卓)requires compiler compliance level 5.0 or 6.0.
  4. 【android】android 开发错误集锦4月
  5. Android(安卓)Bundle类
  6. 自定义圆形进度条ProgressBar的三种方式
  7. Android(安卓)判断Intent是否存在
  8. 在android上使用ASCII显示特殊符号
  9. android中常见的错误及解决办法

随机推荐

  1. SeekBar 和 RatingBar
  2. android设置窗口特性
  3. 圆形button
  4. android include使用
  5. layout布局属性、标签属性总结大全
  6. Android(安卓)Launcher manifest解析
  7. [Android] 利用Handler实现定时器功能
  8. ANDROID : java.lang.NoSuchMethodError:
  9. EditText的hint位置和光标位置靠右
  10. Android(安卓)中Observer模式的使用