详解Dialog(含自定义dialog)
程序开发
2023-09-09 18:36:03
详解Dialog
标准Dialog
Method 1 构建AlertDialog.Builder
Step 1 实例化一个Builder
AlertDialog.Builder builder = new AlertDialog.Builder(this);
Step2 设置对话框样式 [标题、提示语句、按钮等]
builder.setTitle("提示");
builder.setMessage("你确定要退出吗?");
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {finish();}
});
builder.setNegativeButton("取消",null);
Step 3 展示
//展示方式1:builder.show();//展示方式2:
// AlertDialog alertDialog = builder.create();
// alertDialog.show();
Method 2 实例化AlertDialog
这种方式不是很常用,因为setbutton里面没有positive 和negative之分,写在了一个方法里,仅供参考
public void showNormaDialoy(){AlertDialog dialog = new AlertDialog.Builder(this).create();dialog.setTitle("提示");dialog.setMessage("你确定要退出吗?");//注意此处没有setPositiveButton()以及setNegativeButton()方法dialog.setButton(DialogInterface.BUTTON_POSITIVE, "确定", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {finish();}});dialog.setButton(DialogInterface.BUTTON_NEGATIVE, "取消", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {}});dialog.show();
}
测试结果
自定义对话框
Step 1 设计自定义对话框样式——dialog_layout.xml
Step 2 设置style ——去标题栏 /去背景
Step 3 将dialog_layout.xml应用到当前自定义对话框
创建MyDialog类
public class MyDialog extends Dialog {//用第二个构造方法,以便于传入自己设计的stylepublic MyDialog(@NonNull Context context, int themeResId) {super(context, themeResId);setContentView(R.layout.dialog_layout);...}
}
Step 4 实例化对话框并展示
MainActivity.java文件中
//参数1:环境上下文;参数2:创建的style
MyDialog myDialog = new MyDialog(this,R.style.mydialog);
myDialog.show();
Step 5 添加点击事件
public MyDialog(@NonNull Context context, int themeResId) {super(context, themeResId);setContentView(R.layout.dialog_layout);Button yes_button = findViewById(R.id.yes_btn);Button no_button = findViewById(R.id.no_btn);yes_button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {//Dialog中没有finish()方法System.exit(0);}});no_button.setOnClickListener(new View.OnClickListener() {@Overridepublic void onClick(View v) {//对话框消失dismiss();}});}
}
测试结果
标签:
上一篇:
如何应用Nginx Rewrit实现网页跳转
下一篇:
相关文章
-
无相关信息