• UI界面和组件(四)


    对话框AlertDialog

    一、普通对话框

    <Button
            android:id="@+id/btn_main_normaldialog"
            android:text="启动常规对话框"
            android:onClick="startNormalDialog1"
    
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>
    public void startNormalDialog1(View view){
            new AlertDialog.Builder(this)
                    .setCancelable(false) //不能点击外面的区域 取消对话框
                    .setIcon(R.drawable.dialog_icon)
                    .setTitle("删除记录确认对话框")
                    .setMessage("是否确认删除该条记录")
                    .setPositiveButton("是", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) { //dialog接受了点击事件额对话框,which 按下了按钮的 id
                            Toast.makeText(MainActivity.this,"删除记录成功",Toast.LENGTH_SHORT).show();
                        }
                    })
                    .setNegativeButton("否", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            Toast.makeText(MainActivity.this,"取消删除记录",Toast.LENGTH_SHORT).show();
                        }
                    })
                    .show();
        }

         

     
     

    二、单选(复选)对话框

     (一) 单选对话框

        <Button
            android:id="@+id/btn_main_listdialog"
            android:text="启动单选对话框"
            android:onClick="startListDialog1"
    
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>
        public void startListDialog1(View view){
            String[] color = {"Green","Blue","Red","Orange","Purole"};
            new AlertDialog.Builder(this)
                    .setTitle("请选择颜色")
                    .setSingleChoiceItems(color, 0, new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            Toast.makeText(MainActivity.this,color[which],Toast.LENGTH_SHORT).show();
                        }
                    })//checkedItem 默认选项
                    .setPositiveButton("OK",null)
                    .show();
    
        }

     (二) 复选对话框

    三、自定义对话框

        <Button
            android:id="@+id/btn_main_customdialog"
            android:text="启动自定义视图对话框"
            android:onClick="startCustomDialog1"
    
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>

    dialog_view.xml

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical"
        android:padding="20dp">
    
        <EditText
            android:id="@+id/et_dialog_name"
            android:hint="用户名"
    
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>
        <EditText
            android:id="@+id/et_dialog_psw"
            android:hint="密码"
    
            android:layout_width="match_parent"
            android:layout_height="wrap_content"/>
    
    </LinearLayout>
        public void startCustomDialog1(View view){
            View view_dialog = View.inflate(this,R.layout.dialog_view,null);
            EditText et_user = view_dialog.findViewById(R.id.et_dialog_name);
            EditText et_psw = view_dialog.findViewById(R.id.et_dialog_psw);
    
            new AlertDialog.Builder(this)
                    .setTitle("自定义对话框")
                    .setCancelable(false)
                    .setView(view_dialog) //不能是R.id.dialog_view
                    .setPositiveButton("登陆", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            String username = et_user.getText().toString().trim();
                            String userpsw = et_psw.getText().toString().trim();
                            Toast.makeText(MainActivity.this,"用户名:"+ username+" 密码:"+ userpsw,Toast.LENGTH_SHORT).show();
                        }
                    })
                    .show();
    
    
        }

    四、进度条对话框

    (一)圆形

        public void startProgressDialog1(View view){
            ProgressDialog progressDialog = new ProgressDialog(this); //父类是AlertDialog
            progressDialog.setTitle("带进度条的对话框");
            progressDialog.setProgress(30);
            progressDialog.setMax(100);
            progressDialog.setCancelable(false);
            progressDialog.show();
        }

    (二)水平

        public void startProgressDialog1(View view){
            ProgressDialog progressDialog = new ProgressDialog(this); //父类是AlertDialog
            progressDialog.setTitle("带进度条的对话框");
            progressDialog.setProgress(30);
            progressDialog.setMax(100);
            progressDialog.setCancelable(false);
            progressDialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
    
            progressDialog.show();
    
            //为了使进度条动起来 创建子线程
            new Thread(new Runnable() {
                @Override
                public void run() {
                    for(int i=1;i<=20;i++){
                        try {
                            Thread.sleep(200);
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }
                        progressDialog.setProgress(progressDialog.getProgress() + 5); //每隔200ms,向前推进5格
                    }
                    progressDialog.dismiss();//隐藏
                }
            }).start(); //跑起来,别忘了
    
        }

    五、日期选择对话框

    public void startDatePickerDialog1(View view){
            Calendar calendar = Calendar.getInstance();
            int year = calendar.get(Calendar.YEAR);
            int month = calendar.get(Calendar.MONTH);
            int day = calendar.get(Calendar.DAY_OF_MONTH);
    
            new DatePickerDialog(this, new DatePickerDialog.OnDateSetListener() {
                @Override
                public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) {
                    Toast.makeText(MainActivity.this,"选中了 "+year+"年"+(month+1)+"月"+dayOfMonth+"日",Toast.LENGTH_SHORT).show();
                }
            }, year,month,day).show();
        }

              

  • 相关阅读:
    https://archive.ics.uci.edu/ml/datasets.php
    实战教程 :使用Python和keras进行文本分类(上)(重要)
    洛谷 P1073 最优贸易
    P2278 [HNOI2003]操作系统
    洛谷P2024 食物链
    模板
    我的博客
    mysql一条sql把表中的男改为女,女改为男
    树的度和结点数的关系
    Spider实例详解
  • 原文地址:https://www.cnblogs.com/Master-Sun/p/14258696.html
Copyright © 2020-2023  润新知