通过点击自定义对话框中的按钮生成一个新的自定义对话框
下面是我的第一层自定义对话框的类,其中,加载进来的布局中有三个按钮,第三个按钮也就是button3,是我当作生成下一层对话框的事件按钮。
package com.studio.dialogdemo; import android.app.Dialog; import android.content.Context; import android.support.annotation.NonNull; import android.view.View; import android.widget.Button; /** * Created by dell on 2018/4/23. */ public class MyDialog1 extends Dialog { private Button button1,button2,button3; public MyDialog1(@NonNull Context context, int themeResId) { super(context, themeResId); setContentView(R.layout.layout_mydialog1); button1 = findViewById(R.id.button_yes_dialog1); button2 = findViewById(R.id.button_no_dialog1); button3 = findViewById(R.id.button_showthis); button1.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { System.exit(0); } }); button2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { dismiss(); } }); button3.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { dismiss(); ShowMyInformationDailog showMyInformationDailog = new ShowMyInformationDailog(this,R.style.mydialog); showMyInformationDailog.show(); } }); } }
下面是我的第二层自定义对话框。这个自定义类中加载的布局中只有一个imageview。按理说,当我在第一个自定义对话框弹出来后点击button3的时候,会加载出第二层对话框,可是问题却是程序终止,应用闪退。请老师看看我哪里没注意!谢谢!
package com.studio.dialogdemo; import android.app.Dialog; import android.content.Context; import android.support.annotation.NonNull; import android.view.View; /** * Created by dell on 2018/4/23. */ public class ShowMyInformationDailog extends Dialog{ public ShowMyInformationDailog(@NonNull View.OnClickListener context, int themeResId) { super((Context) context, themeResId); setContentView(R.layout.layout_dialog1_dialog); } }
10
收起
正在回答
1回答
1、MyDialog1中,下图中的this你替换成当前调用这个MyDialog1的Activity的context,例如改成LoginActivity.this
2、ShowMyInformationDailog中,把红框部分的代码换成android.content.Context包下面的Context类
Android零基础入门2018版
- 参与学习 人
- 提交作业 5461 份
- 解答问题 7238 个
此次推出的专题为Android攻城狮培养计划的第一部分语法与界面基础篇,将带大家从0开始学习Android开发。
了解课程
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星