当前位置:首页 » 安卓系统 » 安卓对话框哪个好用

安卓对话框哪个好用

发布时间: 2023-06-16 03:31:05

⑴ android 怎样设置单击一个按钮,不会重复弹出dialog

Android中的对话框是经常用的组件,是用来提示用户的消息的。
常用的对话框有
1:警告对话框
AlertDialog:
一个可以有0到3个按钮,
一个单选框或复选框的列表的对话框.
警告对话框可以创建大多数的交互界面,
是推荐的类型.
2:进度对话框
ProgressDialog:
显示一个进度环或者一个进度条.
由于它是AlertDialog的扩展,
所以它也支持按钮.
3:日期选择对话框
DatePickerDialog:
让用户选择一个日期.
4:时间选择对话框
TimePickerDialog:
让用户选择一个时间.
为了让用户重复单机按钮不会重复产生对话框只要在产生对话框的时候做个判断即可,定义个全局的对话框。
AlertDialog.Builder
builder
=
null;//这里先设置为null
点击按钮产生对话框
button2.setOnClickListener(new
OnClickListener()
{
public
void
onClick(View
v)
{
if(builder
!=null){
builder
=
new
AlertDialog.Builder(MainDialog.this);
builder.setIcon(R.drawable.icon);
builder.setTitle("你确定要离开吗?");
builder.setPositiveButton("确定",
new
DialogInterface.OnClickListener()
{
public
void
onClick(DialogInterface
dialog,
int
whichButton)
{
//这里添加点击确定后的逻辑
showDialog("你选择了确定");
}
});
builder.setNegativeButton("取消",
new
DialogInterface.OnClickListener()
{
public
void
onClick(DialogInterface
dialog,
int
whichButton)
{
//这里添加点击确定后的逻辑
showDialog("你选择了取消");
}
});
builder.create().show();//显示兑换框
}
}
});

⑵ Android中使用CardView实现圆角对话框

前言:随着用户体验的不断的加深,良好的UI视觉效果也必不可少,以前方方正正的对话框样式在APP已不复存在,取而代之的是带有圆角效果的Dialog,之前设置对画框的圆角效果都是通过drawable/shape属性来完成,随着Google API的不断更新,API 21(Android 5.0)添加了新的控件CardView,这使得圆角的实现更加方便快捷。

效果图:

导入CardView依赖(API 21新控件)

1.cardCornerRadius属性:设置圆角的弧度大小,这里设置的为10dp

2.CardView还有padding、cardUseCompatPadding(内边距)、background等属性

3.CardView继承自FrameLayout,使用时可以重新嵌套布局

使用的是V7包的AlertDialog实现的,当然也可以使用Dialog实现。

总结:CardView实现对话框的圆角效果更加的方便,不用编写shape属性设置背景,当标题栏需要背景色时,也无需考虑设置标题栏的shape背景(不使用CardView时,如果不使用shape设置背景色,会导致左上和右上不会变成圆角)。

⑶ Android 开发 对话框Dialog dismiss和hide方法的区别

dismiss和hide方法都可以隐藏对话框,在需要的时候也可以用show方法调用显示。但是,这两者是有区别的。
dismiss方法会释放对话框所占的资源,而hide方法不会。activity退出前必须调用dismiss方法关闭对话框。
如果对话框上有progressbar,你会发现,调用dismiss方法后,再调用show方法,出来的对话框,上面的progressbar不再会转动,而调用hide方法的则没有问题。
所以,最正确的调用方法是,在activity的onDestory方法里调用dismiss方法,其他地方都用hide方法隐藏对话框。

⑷ android中Dialog和PopupWindow的区别

Android中的对话框有两种:PopupWindow和AlertDialog。它们都可以实现弹窗功能,但是他们之间有一些差别,下面总结了一点。 (1)Popupwindow在显示之前一定要设置宽高,Dialog无此限制。 (2)Popupwindow默认不会响应物理键盘的back,除非显示设置了popup.setFocusable(true);而在点击back的时候,Dialog会消失。 (3)Popupwindow不会给页面其他的部分添加蒙层,而Dialog会。 (4)Popupwindow没有标题,Dialog默认有标题,可以通过dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);取消标题 (5)二者显示的时候都要设置Gravity。如果不设置,Dialog默认是Gravity.CENTER。 (6)二者都有默认的背景,都可以通过setBackgroundDrawable(new ColorDrawable(android.R.color.transparent));去掉。 其中最本质的差别就是:AlertDialog是非阻塞式对话框:AlertDialog弹出时,后台还可以做事情;而PopupWindow是阻塞式对话框:PopupWindow弹出时,程序会等待,在PopupWindow退出前,程序一直等待,只有当我们调用了dismiss方法的后,PopupWindow退出,程序才会向下执行。这两种区别的表现是:AlertDialog弹出时,背景是黑色的,但是当我们点击背景,AlertDialog会消失,证明程序不仅响应AlertDialog的操作,还响应其他操作,其他程序没有被阻塞,这说明了AlertDialog是非阻塞式对话框;PopupWindow弹出时,背景没有什么变化,但是当我们点击背景的时候,程序没有响应,只允许我们操作PopupWindow,其他操作被阻塞。 我们在写程序的过程中可以根据自己的需要选择使用Popupwindow或者是Dialog。

⑸ android里有非模态对话框吗

非模态对话框就是Dialog吧,android中的dialog实例代码为:
1.创建对象框
AlertDialog.Builder builder = new Builder(context);
builder.setTitle("请输入"); //设置对话框标题
builder.setIcon(android.R.drawable.btn_star); //设置对话框标题前的图标

2.创建EditText输入框
final EditText edit = new EditText(context);

3.将输入框赋值给Dialog,并增加确定取消按键
builder.setView(edit);
builder.setPositiveButton("确认", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(context, "你输入的是: " + edit.getText().toString(), Toast.LENGTH_SHORT).show();
}
});
builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(context, "你点了取消", Toast.LENGTH_SHORT).show();
}
});

4.设置常用api,并show弹出
builder.setCancelable(true); //设置按钮是否可以按返回键取消,false则不可以取消
AlertDialog dialog = builder.create(); //创建对话框
dialog.setCanceledOnTouchOutside(true); //设置弹出框失去焦点是否隐藏,即点击屏蔽其它地方是否隐藏
dialog.show();

⑹ android中有没有类似ShowMessage那种模态对话框

给个例子好了

java">importandroid.app.Activity;
importandroid.app.Dialog;
importandroid.os.Handler;
importandroid.os.Looper;
importandroid.os.Message;
importandroid.text.method.PasswordTransformationMethod;
importandroid.text.method.TransformationMethod;
importandroid.view.View;
importandroid.widget.CheckBox;
importandroid.widget.EditText;
importandroid.widget.TextView;

{
intdialogResult;
HandlermHandler;

publicPasswordDialog(Activitycontext,StringmailName,booleanretry)
{

super(context);
setOwnerActivity(context);
onCreate();
TextViewpromptLbl=(TextView)findViewById(R.id.promptLbl);
promptLbl.setText("请输入密码/n"+mailName);
}
publicintgetDialogResult()
{
returndialogResult;
}
publicvoidsetDialogResult(intdialogResult)
{
this.dialogResult=dialogResult;
}
/**.*/

publicvoidonCreate(){
setContentView(R.layout.password_dialog);
findViewById(R.id.cancelBtn).setOnClickListener(newandroid.view.View.OnClickListener(){

@Override
publicvoidonClick(ViewparamView)
{
endDialog(DialogResult.CANCEL);
}
});
findViewById(R.id.okBtn).setOnClickListener(newandroid.view.View.OnClickListener(){

@Override
publicvoidonClick(ViewparamView)
{
endDialog(DialogResult.OK);
}
});
}

publicvoidendDialog(intresult)
{
dismiss();
setDialogResult(result);
Messagem=mHandler.obtainMessage();
mHandler.sendMessage(m);
}

publicintshowDialog()
{
mHandler=newHandler(){
@Override
publicvoidhandleMessage(Messagemesg){
//processincomingmessageshere
//super.handleMessage(msg);
thrownewRuntimeException();
}
};
super.show();
try{
Looper.getMainLooper().loop();
}
catch(RuntimeExceptione2)
{
}
returndialogResult;
}

}

⑺ 【译】Android材质组件的动手实践:Dialogs

Android MDC 系列文章:

这篇文章将介绍 Dialogs 组件的功能和API。要了解如何处理Android的Material Components的初始设置(包括Gradle依赖关系和创建应用程序主题),请参阅我的原始文章:

为Android设置Material Components主题

对话框是组件,通常带有模式窗口,显示在应用程序内容的前面。它们用于告知用户可能包含关键信息和/或需要做出决定的任务。它们有目的地打断电流,并一直显示在屏幕上,直到被解散或采取措施为止,因此应谨慎使用。

从设计的角度来看,可以在不同的场景中使用三种主要类型的对话框:

上面所有这些都具有共同的特征:遮盖应用程序内容的背景稀松布(可以选择轻按以关闭对话框)和表面容器。

注意:存在第四种类型: 全屏对话框 。为此, 官方文档 建议使用 *DialogFragment* 和资源限定符一起确定其显示方式。这不在本文的讨论范围之内,因此不会涉及。

可以使用来实现所有上述对话框类型 MaterialAlertDialogBuilder 。该构建器类 AlertDialog 使用Material Design规范和主题来配置和实例化。

显示对话框的基本方法如下:

配置更改(例如设备旋转)后,上述方法将不会保留对话框。为了实现这一点,我们需要花一段 DialogFragment 时间使用 MaterialAlertDialogBuilder 来提供 Dialog :

DialogFragment 可以使用 导航体系结构组件 显示,也可以通过 Fragment 或 Activity 通过以下方式手动显示:

可以通过将参数传递给来实现上面(和更多)三种对话框中列出的所有特征 MaterialAlertDialogBuilder 。下面列出了其中一些。

注意:在以下大多数情况下,将使用硬编码值。该构建器还提供资源ID的重载。

注意:对话框的中间区域可以被支持文本或一组特定类型的项目占用。这些不能合并。

存在几个主题叠加层,用于更改对话框的总体布局。这些主题覆盖变体继承自 ThemeOverlay.MaterialComponents.MaterialAlertDialog ,每个都有一个可选的后缀:

实施全局自定义Material AlertDialog 主题叠加层时,请在您的应用程序主题中使用 materialAlertDialogTheme 属性引用它。

另外,还有一个辅助 MaterialAlertDialogBuilder 构造函数,它接受覆盖的主题资源ID:

可以使用三个“材料主题”子系统为主题设置“材料警报”对话框: 颜色 版式 形状 。我们已经在上面的 “选择主题叠加层” 部分中显示了要使用 的主题叠加层 。除此之外, AlertDialog 可以通过扩展样式并使用属性 在 主题叠加层中引用自定义样式。 MaterialAlertDialog.MaterialComponents``alertDialogStyle

有没有具体的属性自定义在一个对话框中使用的颜色,但 colorPrimary , colorSecondary , colorSurface 和各自的“关于”在您的应用程序使用的主题会自动调整对话框颜色颜色改变时。

对话框文本元素将采用 fontFamily 您在应用程序主题中定义的属性。操作按钮的样式将根据 textAppearanceButton 您在应用主题中设置的样式进行设置。

在主题叠加层中,您还可以使用 属性为正文文本专门设置样式。

可以使用该 shapeAppearance 属性自定义对话框背景的形状。默认为 。

我希望这篇文章对对话框以及如何在您的Android应用中使用对话框提供了一些见识。如果您有任何疑问,想法或建议,那么我很乐意收到您的来信!

在Twitter上找到我 @ricknout

热点内容
芒果tv缓存的视频在哪个文件里 发布:2025-02-07 16:45:05 浏览:813
php邮件群发 发布:2025-02-07 16:45:05 浏览:612
mysql数据库基本语句 发布:2025-02-07 16:41:48 浏览:250
医院门禁密码多少 发布:2025-02-07 16:41:43 浏览:527
服务器遭美国ip攻击签名 发布:2025-02-07 16:22:48 浏览:546
如何配置二良腌料 发布:2025-02-07 16:11:54 浏览:735
数据库课程设计学生管理系统 发布:2025-02-07 16:11:50 浏览:764
美国文化密码是什么 发布:2025-02-07 16:07:14 浏览:261
安卓手机下雪特效怎么p 发布:2025-02-07 15:49:30 浏览:319
轮胎存储铭牌 发布:2025-02-07 15:43:38 浏览:74