




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第Android开发之AlertDialog实现弹出对话框本文实例为大家分享了Android开发之AlertDialog实现弹出对话框的具体代码,供大家参考,具体内容如下
我们在xml中添加一个按钮用来唤出对话框:
xmlversion="1.0"encoding="utf-8"
LinearLayoutxmlns:android="/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
Button
android:text="显示对话框"
android:
android:layout_width="wrap_content"
android:layout_height="wrap_content"/
/LinearLayout
然后在java代码中编写点击事件的响应:
packagecom.example.myalertdialog;
importandroidx.appcompat.app.AlertDialog;
importandroidx.appcompat.app.AppCompatActivity;
importandroid.os.Bundle;
importandroid.view.View;
publicclassMainActivityextendsAppCompatActivity{
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
publicvoiddisplay(Viewview){
AlertDialog.Builderbuilder=newAlertDialog.Builder(this);
builder.setIcon(R.drawable.ic_baseline_all_inclusive_24)
.setTitle("对话框")
.setMessage("Hello")
.create()
.show();
}
}
先声明一个构造器对象builder:AlertDialog.Builderbuilder=newAlertDialog.Builder(this);
之后就可以用该构造器的各种方法设置对话框的属性:
builder.setIcon(inticonId);添加图标
builder.setMessage(CharSequencemessage);添加消息
builder.setTitle(CharSequencetitle);添加标题
builder.setView(Viewview);设置自定义布局
builder.create();创建对话框
builder.show();显示对话框
上面的这些函数都是可以链式调用的(详见基本框架),不过由于setXXX是Builder函数,create函数返回Dialog变量,而show是void函数,所以这三类函数的顺序不能交换,setXXX函数的内部顺序可交换。
运行基本框架中的代码就可以得到一个简单的弹出对话框:
常见的对话框一般还有按钮,包含确认、取消等按钮,我们也可以在java代码中设置并声明点击事件:
packagecom.example.myalertdialog;
importandroidx.appcompat.app.AlertDialog;
importandroidx.appcompat.app.AppCompatActivity;
importandroid.content.DialogInterface;
importandroid.os.Bundle;
importandroid.util.Log;
importandroid.view.View;
publicclassMainActivityextendsAppCompatActivity{
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
publicvoiddisplay(Viewview){
AlertDialog.Builderbuilder=newAlertDialog.Builder(this);
builder.setIcon(R.drawable.ic_baseline_all_inclusive_24)
.setTitle("对话框")
.setMessage("Hello")
.setPositiveButton("OK",newDialogInterface.OnClickListener(){
@Override
publicvoidonClick(DialogInterfacedialogInterface,inti){
Log.e("ShadyPi","点击确认");
}
})
.setNegativeButton("Cancel",newDialogInterface.OnClickListener(){
@Override
publicvoidonClick(DialogInterfacedialogInterface,inti){
Log.e("ShadyPi","点击取消");
}
})
.setNeutralButton("middle",newDialogInterface.OnClickListener(){
@Override
publicvoidonClick(DialogInterfacedialogInterface,inti){
Log.e("ShadyPi","点击中性");
}
})
.create()
.show();
}
}
点击对应按钮可以看到事件被触发:
这三个按钮可以根据自己的需要进行取舍与设置。
设置自定义布局
在layout文件夹中新建资源文件:
随便添加一点ImageView和TextView:
xmlversion="1.0"encoding="utf-8"
LinearLayoutxmlns:android="/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/purple_500"
android:orientation="horizontal"
ImageView
android:src="@mipmap/ic_launcher"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/
TextView
android:text="Android"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/
/LinearLayout
在java代码中利用该资源文件生成一个View:
Viewdialog_view=getLayoutInflater().inflate(R.layout.dialog_view,null);
之后就可以将对话框的步距设置为该View了:
.setView(dialog_view)
MainActivity.java完整代码:
packagecom.example.myalertdialog;
importandroidx.appcompat.app.AlertDialog;
importandroidx.appcompat.app.AppCompatActivity;
importandroid.content.DialogInterface;
importandroid.os.Bundle;
importandroid.util.Log;
importandroid.view.View;
publicclassMainActivityextendsAppCompatActivity{
@Override
protectedvoidonCreate(BundlesavedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
publicvoiddisplay(Viewview){
Viewdialog_view=getLayoutInflater().inflate(R.layout.dialog_view,null);
AlertDialog.Builderbuilder=newAlertDialog.Builder(this);
builder.setIcon(R.drawable.ic_baseline_all_inclusive_24)
.setTitle("对话框")
.setMessage("Hello")
.setPositiveButton("OK",newDialogInterface.OnClickListener(){
@Override
publicvoidonClick(DialogInterfacedialogInterface,inti){
Log.e("ShadyPi","点击确认");
}
})
.setNegativeButton("Cancel",newDialogInterface.OnClickListener(){
@O
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年院线经营合作协议书
- 2025年柔性树脂版合作协议书
- 农户农业机械购置与技术服务协议
- 2025年深孔钻项目合作计划书
- 行业资质荣誉证书复印件证明书(5篇)
- 小学教师节班会活动方案
- 个人收入及奖金津贴补助证明(8篇)
- 基础与地基设计试题及答案
- 电子交易市场入驻商家协议
- 人力资源管理市政学试题及答案
- 肾脏内科临床诊疗指南及操作规范
- 教育的情调读书分享会PPT
- 10kV保护定值计算明细表
- 图形创意(高职艺术设计类)PPT完整全套教学课件
- 化学发光免疫检验技术(免疫学检验课件)
- 医学美容技术期末考试(试题与答案)
- 0LB2000沥青搅拌机设计-毕业论文
- 区块链技术及应用PPT完整全套教学课件
- 小学语文双减政策及其落实措施效果研究
- 新版GSP零售药店质量管理体系文件-最终版
- 托福词汇10000电子讲义
评论
0/150
提交评论