关于Dialog使用上下文的问题
来源:互联网 发布:陪我聊天软件 编辑:程序博客网 时间:2024/04/30 13:57
public class DActivity extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState);<pre name="code" class="java">public class MyDialog extends Dialog {public MyDialog(Context context) {super(context);}@Overrideprotected void onCreate(Bundle savedInstanceState) {setTitle("123");setContentView(R.layout.a);super.onCreate(savedInstanceState);}}
setContentView(new MyView(getApplicationContext()));
} }
public class MyView extends View{public MyView(Context context) {super(context);}@Overrideprotected void onDraw(Canvas canvas) {super.onDraw(canvas);Paint p = new Paint();p.setColor(Color.GREEN);canvas.drawCircle(200, 200, 200, p);}@Overridepublic boolean onTouchEvent(MotionEvent event) {if(event.getAction() != event.ACTION_DOWN)return super.onTouchEvent(event);MyDialog md = new MyDialog(this.getContext());md.show();return true;}}
因为一般来说,Dialog是依存于Activity的,所以在setContentView(new MyView(getApplicationContext()));中,传给MyView的是整个程序的上下文对象,导致MyDialog md = new MyDialog(this.getContext());中this.getContext()得到的也是整个程序的上下文对象。所以在dialog.show()时,会弹出ndroid.view.WindowManager$BadTokenException: Unable to add window -- token null is not for an application异常。为此要将DActivity中的setContentView(new MyView(getApplicationContext()));改为setContentView(new MyView(DActivity.this));也就是把DActivity当做MyView的上下文传进去,这样就可以使MyDialog也是运行在DActivity上了。
如有错误,请各位指正
0 0
- 关于Dialog使用上下文的问题
- Dialog传上下文的问题
- 关于使用dialog主题的activity问题
- 关于自定义Dialog的问题
- 关于 tabbed dialog control 6.0的问题
- 关于Dialog阴影部分的消除问题
- 关于要使用全局dialog的解决方案
- 关于自定义dialog 使用 style 构造器的时候 点击空白无法隐藏的问题
- 关于dialog显示问题
- 关于JSP中获取全局上下文不能识别的问题
- jquery easyui dialog的几个使用问题
- android使用Dialog要注意的问题
- jquery easyui dialog的几个使用问题
- jquery easyui dialog的几个使用问题
- 使用dialog导致内存泄露的问题
- 关于easyui使用<iframe />与Dialog弹框问题
- alrtbuilder.dialog使用以及两种上下文比较
- 关于easyUI的dialog的自动打开问题
- N-Queens Problem
- 利用fileupload组件在项目中实现上传
- Top N Numbers
- 虚函数表的实现细节
- addressBookHelper
- 关于Dialog使用上下文的问题
- Unix Socket编程简介
- Myeclipse试用到期解决方法
- Android 应用程序发送短信的两种方式
- Tslib移植与分析
- 浏览器兼容性处理
- new运算符以及构造函数与析构函数
- Android surfaceview详解
- C++11新标准解析