Android开发之AlertDialog实现弹出对话框_第1页
Android开发之AlertDialog实现弹出对话框_第2页
Android开发之AlertDialog实现弹出对话框_第3页
Android开发之AlertDialog实现弹出对话框_第4页
Android开发之AlertDialog实现弹出对话框_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论