美文网首页
对话框传参的坑

对话框传参的坑

作者: dev晴天 | 来源:发表于2018-08-11 19:19 被阅读0次

此处不讲原理(原理有关activity 的Token),原理自备梯子。

1 详细参考http://www.jianshu.com/p/5849ff24e486

2 实际上安卓弹出的对话框 吐司都是需要添加到手机的窗口上的

3 对话框报错(此处传参数this是不会报错的):

 public void normal(View view){
        AlertDialog.Builder builder = new AlertDialog.Builder(getApplicationContext());
        builder.setTitle("对话框");
        builder.setMessage("这是一个常见的对话框");
        builder.show();

    }
报错:

  java.lang.IllegalStateException: Could not execute method for android:onClick

Caused by: java.lang.reflect.InvocationTargetException

Caused by: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.

4 两种上下文的区别

getApplicationContext() 返回Context对象

this(此处为MainActivity对象,当前的Activity对象)

查看源码发现Activity最终才继承Context
父类有的子类一定有 子类有的父类不一定有

使用this告诉了对话框具体显示在了那个activity上 而使用getApplicationContext()不知道要绑定在哪个activity上面

注 对话框不能使用 getApplicationContext()  只能使用this

5 进度条对话框:
ProgressDialog  使用简单可以直接new
与进度相关的控件可以直接在子线程更新ui

 


相关文章

网友评论

      本文标题:对话框传参的坑

      本文链接:https://www.haomeiwen.com/subject/bcadbftx.html