Alertdialog 对话框 安卓.docx
《Alertdialog 对话框 安卓.docx》由会员分享,可在线阅读,更多相关《Alertdialog 对话框 安卓.docx(13页珍藏版)》请在冰豆网上搜索。
![Alertdialog 对话框 安卓.docx](https://file1.bdocx.com/fileroot1/2023-2/1/c1c61a2d-2c10-4183-b94f-c0bedb2ba242/c1c61a2d-2c10-4183-b94f-c0bedb2ba2421.gif)
Alertdialog对话框安卓
3.10Alertdialog对话框
用AlertDialog.Builder创建对话框需要了解以下几个方法:
setTitle:
为对话框设置标题
setIcon:
为对话框设置图标
setMessage:
为对话框设置内容
setView:
给对话框设置自定义样式
setItems:
设置对话框要显示的一个list,一般用于显示几个命令时
setMultiChoiceItems:
用来设置对话框显示一系列的复选框
create:
创建对话框
show:
显示对话框
在AlertDialog中,定义按钮都是通过setXXXButton方法来完成,其中一共有3种不同的ActionButtons供我们选择:
1.setPositiveButton(CharSequencetext,DialogInterface.OnClickListenerlistener)
这是一个相当于Yes,OK、确定操作的按钮,
2.setNegativeButton(CharSequencetext,DialogInterface.OnClickListenerlistener)
这是一个相当于No,Cancel取消操作的按钮。
3.setNeutralButton(CharSequencetext,DialogInterface.OnClickListenerlistener)
这个是相当于一个忽略操作的按钮。
【例】简单的AlertDialog
Java代码:
publicvoidshowDialog1(Viewview){
AlertDialog.Builderbuilder=newAlertDialog.Builder(this);
builder.setTitle("简单对话框");
builder.setMessage("你好,我就是最简单的对话框!
");
builder.setIcon(R.mipmap.ic_launcher);
builder.show();
}
【例2】带按钮的对话框
/**
*带按钮的对话框
*/
publicvoidshowDialog2(Viewview){
AlertDialog.Builderbuilder=newAlertDialog.Builder(this);
builder.setIcon(R.mipmap.ic_launcher);
builder.setTitle("简单对话框");
builder.setMessage("你真的删除吗?
");
builder.setPositiveButton("确定",newDialogInterface.OnClickListener(){
@Override
publicvoidonClick(DialogInterfacedialog,intwhich){
Toast.makeText(MainActivity.this,"确定按钮的单击事件",Toast.LENGTH_SHORT).show();
}
});
builder.setNegativeButton("取消",newDialogInterface.OnClickListener(){
@Override
publicvoidonClick(DialogInterfacedialog,intwhich){
Toast.makeText(MainActivity.this,"取消按钮的单击事件",Toast.LENGTH_SHORT).show();
}
});
builder.setNeutralButton("忽略",newDialogInterface.OnClickListener(){
@Override
publicvoidonClick(DialogInterfacedialog,intwhich){
Toast.makeText(MainActivity.this,"忽略按钮的单击事件",Toast.LENGTH_SHORT).show();
}
});
builder.show();
}
注意:
which参数表示的是actionbutton所代表的int值:
positive:
-1
negative:
-2
neutral:
-3
【例3】下拉列表对话框
/**
*带下拉列表对话框
*/
publicvoidshowDialog3(Viewview){
AlertDialog.Builderbuilder=newAlertDialog.Builder(this);
builder.setTitle("请选择城市");
builder.setIcon(R.mipmap.ic_launcher);
finalString[]city={"北京","上海","深圳","广州","杭州"};
builder.setItems(city,newDialogInterface.OnClickListener(){
@Override
publicvoidonClick(DialogInterfacedialog,intwhich){
Toast.makeText(MainActivity.this,"选择的城市为:
"+city[which],Toast.LENGTH_SHORT).show();
}
});
builder.show();
}
【例4】弹出一个下拉单选框
Java代码:
intindex=0;
/**
*带下拉单选对话框
*/
publicvoidshowDialog4(Viewview){
finalString[]arrayFruit=newString[]{"苹果","橘子","草莓","香蕉"};
DialogalertDialog=newAlertDialog.Builder(this).
setTitle("你喜欢吃哪种水果?
").
setIcon(R.mipmap.ic_launcher).
setSingleChoiceItems(arrayFruit,0,newDialogInterface.OnClickListener(){
@Override
publicvoidonClick(DialogInterfacedialog,intwhich){
index=which;
}
}).
setPositiveButton("确认",newDialogInterface.OnClickListener(){
@Override
publicvoidonClick(DialogInterfacedialog,intwhich){
Toast.makeText(MainActivity.this,arrayFruit[index],Toast.LENGTH_SHORT).show();
}
}).
setNegativeButton("取消",newDialogInterface.OnClickListener(){
@Override
publicvoidonClick(DialogInterfacedialog,intwhich){
//TODOAuto-generatedmethodstub
}
}).
create();
alertDialog.show();
}
【例5】弹出一个下拉复选框
Java代码
/**
*带复选对话框
*/
publicvoidshowDialog5(Viewview){
AlertDialog.Builderbuilder=newAlertDialog.Builder(MainActivity.this);
builder.setIcon(R.mipmap.ic_launcher);
builder.setTitle("爱好");
finalString[]hobbies={"玩手机","玩游戏","睡觉","码代码"};
finalboolean[]selectedInit=newboolean[]{true,true,false,false};
//设置一个单项选择下拉框
/**
*第一个参数指定我们要显示的一组下拉多选框的数据集合
*第二个参数代表哪几个选项被选择,如果是null,则表示一个都不选择,如果希望指定哪一个多选选项框被选择,
*需要传递一个boolean[]数组进去,其长度要和第一个参数的长度相同,例如{true,false,false,true};
*第三个参数给每一个多选项绑定一个监听器
*/
builder.setMultiChoiceItems(hobbies,selectedInit,newDialogInterface.OnMultiChoiceClickListener()
{
@Override
publicvoidonClick(DialogInterfacedialog,intwhich,booleanisChecked)
{
selectedInit[which]=isChecked;
}
});
builder.setPositiveButton("确定",newDialogInterface.OnClickListener()
{
@Override
publicvoidonClick(DialogInterfacedialog,intwhich)
{
StringBufferstr=newStringBuffer(100);
for(inti=0;iif(selectedInit[i]==true){
str.append(hobbies[i]+",");
}
}
Toast.makeText(MainActivity.this,"爱好为:
"+str.toString(),Toast.LENGTH_SHORT).show();
}
});
builder.setNegativeButton("取消",newDialogInterface.OnClickListener()
{
@Override
publicvoidonClick(DialogInterfacedialog,intwhich)
{
}
});
builder.show();
}
【例6】自定义对话框
(1)定义布局文件——login.xml
xmlversion="1.0"encoding="utf-8"?
>
android="
android:
orientation="vertical"android:
layout_width="match_parent"
android:
layout_height="match_parent"
android:
padding="@dimen/activity_horizontal_margin">
android:
id="@+id/username"
android:
layout_width="match_parent"
android:
layout_height="wrap_content"
android:
hint="请输入用户名"/>
android:
id="@+id/password"
android:
layout_width="match_parent"
android:
layout_height="wrap_content"
android:
layout_below="@id/username"
android:
hint="请输入密码"
android:
inputType="textPassword"/>
(2)Java程序
/**
*自定义对话框
*/
publicvoidshowDialog6(Viewv){
AlertDialog.Builderbuilder=newAlertDialog.Builder(MainActivity.this);
builder.setIcon(R.mipmap.ic_launcher);
builder.setTitle("请输入用户名和密码");
//通过LayoutInflater来加载一个xml的布局文件作为一个View对象
Viewview=LayoutInflater.from(MainActivity.this).inflate(R.layout.login,null);
//设置我们自己定义的布局文件作为弹出框的Content
builder.setView(view);
finalEditTextusername=(EditText)view.findViewById(R.id.username);
finalEditTextpassword=(EditText)view.findViewById(R.id.password);
builder.setPositiveButton("确定",newDialogInterface.OnClickListener()
{
@Override
publicvoidonClick(DialogInterfacedialog,intwhich)
{
Stringa=username.getText().toString().trim();
Stringb=password.getText().toString().trim();
//将输入的用户名和密码打印出来
Toast.makeText(MainActivity.this,"用户名:
"+a+",密码:
"+b,Toast.LENGTH_SHORT).show();
}
});
builder.setNegativeButton("取消",newDialogInterface.OnClickListener()
{
@Override
publicvoidonClick(DialogInterfacedialog,intwhich)
{
}
});
builder.show();
}