Android开发入门组件(十二)——AlertDialog

当操作某个事件的时候,可能会进行弹出框操作进行选择,今天讲一下弹出框的使用,主要分以下几个方面:

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();

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Demo.demo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值