关于AlertDialog.Builder(Context context)中所应传入的context

错误报告:

10-20 14:34:46.565: E/AndroidRuntime(23098): FATAL EXCEPTION: main
10-20 14:34:46.565: E/AndroidRuntime(23098): android.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application

问题分析:

在AlertDialog.Builder(Context context)方法中我传入了getApplicationContext(),一般情况下传入整个应用的上下文是没有问题的,但是AlertDialog的构建是需要一个父Activity的,因此必须传入一个准确的Activity的上下文。

解决办法:

将getApplicationContext()改为xxxActivity.this

时间: 2024-10-14 12:01:42

关于AlertDialog.Builder(Context context)中所应传入的context的相关文章

hadoop中setup,cleanup,run和context讲解

hadoop 执行中的setup run cleanup context的作用1.简介1) setup(),此方法被MapReduce框架仅且执行一次,在执行Map任务前,进行相关变量或者资源的集中初始化工作.若是将资源初始化工作放在方法map()中,导致Mapper任务在解析每一行输入时都会进行资源初始化工作,导致重复,程序运行效率不高!2) Mapper或Reducer运行3) cleanup(),此方法被MapReduce框架仅且执行一次,在执行完毕Map任务后,进行相关变量或资源的释放工

Tomcat配置文件context.xml中<Loader delegate="true" />作用

首先,你需要了解一下JVM的Classloader机制(详细请自行google之).简而言之,JVM的classloader加载继承关系分为BootstarpClassLoader --> ExtClassLoader --> SystemClassLoader,应用的WebAppClassLoader继承自SystemClassLoader,在加载具体某个类时,一般会先委托给父类ClassLoader,当父类ClassLoader无法加载成功时,才会再由子类ClassLoader尝试加载,这

tomcat启动提示server.xml的context节点中不支持source属性警告的解决方法

Tomcat启动时提示: 2011-4-17 0:33:27 org.apache.tomcat.util.digester.SetPropertiesRule begin 警告: [SetPropertiesRule]{Server/Service/Engine/Host/Context} Setting property 'source' to 'org.eclipse.jst.j2ee.server:Epai-0.1' did not find a matching property. [

启动tomcat闪退,logs中提示元素类型 "Context" 必须由匹配的结束标记 "</Context>" 终止的解决方法

报错日志: 五月 10, 2016 3:02:30 下午 org.apache.catalina.startup.Catalina load 警告: Catalina.start using conf/server.xml: 元素类型 "Context" 必须由匹配的结束标记 "</Context>" 终止. 五月 10, 2016 3:02:30 下午 org.apache.tomcat.util.digester.Digester fatalErro

在tomcat下context.xml中配置各种数据库连接池(JNDI)

1.   首先,需要为数据源配置一个JNDI资源.我们的数据源JNDI资源应该定义在context元素中.在tomcat6版本中,context元素已经从server.xml文件中独立出来了,放在一个context.xml文件中.因为server.xml是不可动态重加载的资源,服务器一旦启动了以后,要修改这个文件,就得重启服务器才能重新加载.而context.xml文件则不然,tomcat服务器会定时去扫描这个文件.一旦发现文件被修改(时间戳改变了),就会自动重新加载这个文件,而不需要重启服务器

Android(java)学习笔记197:常见对话框使用AlertDialog.Builder

1.确认取消对话框: AlertDialog.Builder builder = new Builder(this); // 告诉工厂生产什么样的产品 builder.setTitle("友情提醒"); builder.setMessage("若练此功,必先自宫,是否继续?"); builder.setPositiveButton("好的,想好了", new OnClickListener() { @Override public void on

Android开发之Buidler模式初探结合AlertDialog.Builder讲解

什么是Buidler模式呢?就是将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示.Builder模式是一步一步创建一个复杂的对象,它允许用户可以只通过指定复杂对象的类型和内容就可以构建它们. 那么要为何使用Buidler呢? 是为了将构建复杂对象的过程和它的部件分开因为一个复杂的对象,不但有很多大量组成部分,如AlertDialog对话框,有很多组成部件,比如Tittle,Message,icon,PositiveButton等等,但远不止这些,如何将这些部件装配成一个A

Android开发之Buidler模式初探结合AlertDialog.Builder解说

什么是Buidler模式呢?就是将一个复杂对象的构建与它的表示分离,使得相同的构建过程能够创建不同的表示.Builder模式是一步一步创建一个复杂的对象,它同意用户能够仅仅通过指定复杂对象的类型和内容就能够构建它们. 那么要为何使用Buidler呢? 是为了将构建复杂对象的过程和它的部件分开由于一个复杂的对象,不但有非常多大量组成部分,如AlertDialog对话框,有非常多组成部件,比方Tittle,Message,icon,PositiveButton等等,但远不止这些,怎样将这些部件装配成

android 开发AlertDialog.builder对话框的实现

AndroidAPI提供了Dialog对话框控件,但google明确指出不建议开发者只是使用Dialog来创建对话框,而应该自定义对话框或者使用API中提供的Dialog的子类,如AlertDialog.接下来记录下AlertDialog的具体使用,供广大初学者学习,也供自己日后查阅. 首先在资源文件xml中写入一个按钮. <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmln