AlertDialog(对话框)应用实例

1.确认对话框

@Override
	//重写返回函数
    public void onBackPressed() {
    	//创建AlertDialog.Builder对象
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
       	//设置图标、标题、按钮
        builder.setIcon(R.drawable.keeplogo);
        builder.setTitle("确认退出么");
        builder.setNegativeButton("取消",null);
        builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {

            }
        });
        //显示对话框
        builder.show();
        }

展示图:

在这里插入图片描述

2.列表对话框

@Override
    public boolean onItemLongClick(AdapterView<?> adapterView, View view, int i, long l) {
        final String[] arr = {"游泳", "读书", "足球", "逛街", "其他"};
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setIcon(R.drawable.keeplogo);
        builder.setTitle("活动");
        builder.setItems(arr,new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                Toast.makeText(MainActivity.this,"用户选择了:"+arr[i],Toast.LENGTH_SHORT).show();
            }
        });
        builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {

            }
        });
        builder.show();
        return true;
    }

展示图:

在这里插入图片描述

3.单选对话框

int selectedId;
    @Override
    public boolean onItemLongClick(AdapterView<?> adapterView, View view, int i, long l) {
        final String[] arr = {"1星","2星","3星","4星","5星"};
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setIcon(R.drawable.keeplogo);
        builder.setTitle("大虾,给个五星评价吧!");
        builder.setSingleChoiceItems(arr, 1, new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialogInterface, int i) {
                        selectedId = i;
                        Toast.makeText(MainActivity.this,"您的选择是" + arr[i],Toast.LENGTH_SHORT).show();
                    }
                });
        builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                Toast.makeText(MainActivity.this,"您的决定是" + arr[selectedId],Toast.LENGTH_SHORT).show();
            }
        });
                builder.setNegativeButton("取消", null);
            builder.show();
            return true;
      }

展示图:

在这里插入图片描述

4.多选对话框

ArrayList<Integer> MultiChoiceID = new ArrayList<Integer>();
    @Override
    public boolean onItemLongClick(AdapterView<?> adapterView, View view, int i, long l) {
        final String[] arr = {"游泳", "读书", "足球", "逛街", "其他"};
        MultiChoiceID.clear();
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        builder.setIcon(R.drawable.keeplogo);
        builder.setTitle("活动");
        builder.setMultiChoiceItems(arr,
                new boolean[]{false, false, false, false, false},
                new DialogInterface.OnMultiChoiceClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i, boolean checked) {
                if (checked) {
                    MultiChoiceID.add(i);
                } else {
                    MultiChoiceID.remove(i);
                }
                Toast.makeText(MainActivity.this, "您的选择是" + MultiChoiceID.toString(), Toast.LENGTH_SHORT).show();
            }
        });
         builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
            }
        });
        builder.show();
        return true;
    }

展示图:

在这里插入图片描述

5.自定义对话框

dialog.java:

public class dialog extends AppCompatActivity implements View.OnClickListener {
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.dialog);
        Button btn1 = findViewById(R.id.btn1);
        btn1.setOnClickListener(this);
    }
    //声明对话框
    Dialog dialog;
    @Override
    public void onClick(View view) {
        //创建LayoutInflater
        LayoutInflater inflater = LayoutInflater.from(this);
        //获取自定义对话框布局
        View myView = inflater.inflate(R.layout.mydialog,null);
        //创建AlertDialog.Builder
        AlertDialog.Builder builder = new AlertDialog.Builder(this);
        //为对话框设置布局
        builder.setView(myView);
        //设置对话框按钮点击事件
        myView.findViewById(R.id.btn2).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                //关闭对话框
                dialog.dismiss();
            }
        });
        //创建对话框
        dialog = builder.create();
        //显示对话框
        dialog.show();
    }
}

mydialog.xml:

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
        <TextView
            android:layout_width="match_parent"
            android:layout_height="40dp"
            android:text="提醒"
            android:textSize="20dp"
            android:background="#000033"
            android:gravity="center"
            android:textColor="#FFFFFF"
            />
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="90dp"
        android:orientation="vertical"
        android:gravity="center"
        android:background="#FFFFFF">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="恭喜您,验证码发送成功!"
            android:textColor="#000000"
            android:textSize="16dp"
            />
        <Button
            android:layout_width="70dp"
            android:layout_height="30dp"
            android:background="#00AAAA"
            android:textColor="	#FFFFFF"
            android:text="确定"
            android:textSize="16dp"
            android:layout_marginTop="15dp"
            android:id="@+id/btn2"/>
    </LinearLayout>
</LinearLayout>

dialog.xml:

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center">
    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/app_name"
        android:id="@+id/btn1"/>
</LinearLayout>

展示图:

在这里插入图片描述
6.进度条对话框

activity.java:

public class dialog extends AppCompatActivity implements View.OnClickListener {
    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.dialog);
        Button btn1 = findViewById(R.id.btn1);
        btn1.setOnClickListener(this);
    }
    ProgressDialog pd;
    Handler handler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            pd.dismiss();
        }
    };


    public void showProgress() {
        pd = new ProgressDialog(this);
        pd.setTitle("应用安装中");
        pd.setMessage("请稍后...");
        pd.setCancelable(true);
        pd.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);//STYLE_HORIZONTAL(水平进度条),STYLE_SPINNER(环形进度条)
        pd.show();
    }

    @Override
    public void onClick(View view) {
        showProgress();
        //延时操作
        new Thread() {
            @Override
            public void run() {
                for (int i = 0; i < 2; i++) {
                    try {
                        Thread.sleep(3000);
                    } catch (InterruptedException e) {
                        e.printStackTrace();
                    }
                }
                handler.sendEmptyMessage(0);
            }
        }.start();
    }
}

展示图:

在这里插入图片描述

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值