当操作某个事件的时候,可能会进行弹出框操作进行选择,今天讲一下弹出框的使用,主要分以下几个方面:
1.默认样式
一般默认的样式直接是下面横排的几个点击的文字,最多是三个
(1)setNegativeButton(2)setNeutralButton(3)setPositiveButton
可以选其中一个,也可以选其中两个或者都选。
上代码咯
AlertDialog.Builder builder=new AlertDialog.Builder(AlertDialogActivity.this);
//builder.setTitle("请回答");
//builder.setMessage("你的性别是?");
builder.setIcon(R.drawable.hao).setTitle("请回答").setMessage("你的性别是?").setPositiveButton("男", new DialogInterface.OnClickListener() {
@Override//设置积极选择以及选择之后的响应事件
public void onClick(DialogInterface dialogInterface, int i) {
ToastUtil.showMessage(AlertDialogActivity.this,"你就是个男的");}
}).setNegativeButton("女", new DialogInterface.OnClickListener() {
@Override//设置消极选择以及选择之后的响应事件
public void onClick(DialogInterface dialogInterface, int i) {
ToastUtil.showMessage(AlertDialogActivity.this,"你就是个女的");}
}).setNeutralButton("不男不女", new DialogInterface.OnClickListener() {
@Override //设置中性选择以及选择之后的响应事件
public void onClick(DialogInterface dialogInterface, int i) {
ToastUtil.showMessage(AlertDialogActivity.this,"东方不败");}
}).show();
//最不能忘记的是最后要加show()函数,否则不会出现弹出组件
//因为builder类的操作函数完了之后还是builder对象,所以可以直接在后面加继续要操作的函数,也可以重新换一行再继续写其他的函数,如下:
写法一: builder.setTitle("请回答");
builder.setMessage("你的性别是?");
写法二:builder.setTitle("请回答").setMessage("你的性别是?");
因为builder类的操作函数完了之后还是builder对象,所以可以直接在后面加继续要操作的函数,也可以重新换一行再继续写其他的函数,如下:
写法一: builder.setTitle("请回答");
builder.setMessage("你的性别是?");
写法二:builder.setTitle("请回答").setMessage("你的性别是?");
2.单选样式
对于单选样式有原生组件有自己的函数
final String[] array=new String[]{"男","女"};
AlertDialog.Builder builder1=new AlertDialog.Builder(AlertDialogActivity.this);
builder1.setTitle("请选择性别:");
builder1.setItems(array, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
ToastUtil.showMessage(AlertDialogActivity.this,array[i]);}
});
builder1.show();
效果如图:
final String[] array1=new String[]{"男","女"};
AlertDialog.Builder builder2=new AlertDialog.Builder(AlertDialogActivity.this);
builder2.setTitle("请选择性别:");
builder2.setSingleChoiceItems(array1, 0, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialogInterface, int i) {
ToastUtil.showMessage(AlertDialogActivity.this,array1[i]);
dialogInterface.dismiss(); }
}).setCancelable(false).show();
效果如图所示:
3.多选样式
final String[] array2=new String[]{"篮球","足球","羽毛球","乒乓球","游泳"};
boolean[] isselected=new boolean[]{false,true,false,false,false};
AlertDialog.Builder builder3=new AlertDialog.Builder(AlertDialogActivity.this);
builder3.setTitle("请选择喜欢的运动").setMultiChoiceItems(array2, isselected, new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i, boolean b) {
ToastUtil.showMessage(AlertDialogActivity.this,array2[i]+":ischecked");
}
}).setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
}
}).setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialogInterface, int i) {
}
}).show();
4.自定义
对于自定义写一个弹出框输入自己的账户与密码,进行说明
先定义一个layout代码定义组件样式
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent"
android:padding="20dp">
<EditText
android:id="@+id/username"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="用户名"
android:layout_marginTop="20dp"
android:textSize="20sp"/>
<EditText
android:id="@+id/password"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="密码"
android:layout_marginTop="20dp"
android:inputType="textPassword"
android:textSize="20sp"/>
<Button
android:id="@+id/ensurebtn"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:text="登录"
android:textSize="15sp"
android:layout_marginTop="15dp"
android:textAllCaps="false"/>
</LinearLayout>
在activity文件中引用自定义的样式即可
AlertDialog.Builder builder4=new AlertDialog.Builder(AlertDialogActivity.this);
View view1=LayoutInflater.from(AlertDialogActivity.this).inflate(R.layout.layout_dialog,null);
EditText editText=view1.findViewById(R.id.username);
EditText editText1=view1.findViewById(R.id.password);
Button button=view.findViewById(R.id.ensurebtn);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
}});
builder4.setTitle("请登录您的用户").setView(view1);
builder4.show();