zoukankan      html  css  js  c++  java
  • android Dialog官方demo

    1.普通的Dialog

    AlertDialog.Builder builder = new AlertDialog.Builder(this);
            builder.setMessage("今天下雨了吗?")
                    .setPositiveButton("yes", new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int id) {
                            Toast.makeText(Demo7Activity.this,"你点击了yes",Toast.LENGTH_SHORT).show();
                        }
                    })
                    .setNegativeButton("no", new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int id) {
                            Toast.makeText(Demo7Activity.this,"你点击了no",Toast.LENGTH_SHORT).show();
                        }
                    });
            builder.show();
    

    2.单选Dialog

     final String []str = {"香蕉","橘子","苹果","橙子","西瓜","凤梨"};
    
            AlertDialog.Builder builder = new AlertDialog.Builder(this);
            builder.setTitle("请选择一种水果")
                    .setItems(str, new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int which) {
                            Toast.makeText(Demo7Activity.this,"你喜欢"+str[which]+"水果",Toast.LENGTH_SHORT).show();
                        }
                    });
            builder.show();
    

     3.多选Dialog

    final String []str = {"香蕉","橘子","苹果","橙子","西瓜","凤梨"};
    
            final ArrayList<String>mSelectedItems = new ArrayList<String>();
    
            AlertDialog.Builder builder = new AlertDialog.Builder(this);
            // Set the dialog title
            builder.setTitle("请选择一种水果")
                    // Specify the list array, the items to be selected by default (null for none),
                    // and the listener through which to receive callbacks when items are selected
                    .setMultiChoiceItems(str, null,
                            new DialogInterface.OnMultiChoiceClickListener() {
                                @Override
                                public void onClick(DialogInterface dialog, int which,
                                                    boolean isChecked) {
                                    if (isChecked) {
                                        // If the user checked the item, add it to the selected items
                                        mSelectedItems.add(str[which]);
                                    } else if (mSelectedItems.contains(which)) {
                                        // Else, if the item is already in the array, remove it
                                        mSelectedItems.remove(str[which]);
                                    }
                                }
                            })
                    // Set the action buttons
                    .setPositiveButton("确定", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int id) {
    
                            if(mSelectedItems.size() <= 0){
                                Toast.makeText(Demo7Activity.this,"你没有喜欢的水果",Toast.LENGTH_SHORT).show();
                                return;
                            }
    
                            StringBuffer buffer = new StringBuffer();
                            for (int i=0;i<mSelectedItems.size();i++){
                                buffer.append(mSelectedItems.get(i)+" ");
                            }
    
                            Toast.makeText(Demo7Activity.this,"你喜欢的水果有"+buffer.toString(),Toast.LENGTH_SHORT).show();
    
                        }
                    })
                    .setNegativeButton("取消", new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int id) {
                            Toast.makeText(Demo7Activity.this,"你取消了选择",Toast.LENGTH_SHORT).show();
                        }
                    });
    
            builder.show();
    

     4. 自定义Dialog

    
    

    demo7_custom_alert_view.xml代码

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:orientation="vertical"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
        <ImageView
            android:src="@drawable/ic_launcher"
            android:layout_width="match_parent"
            android:layout_height="64dp"
            android:scaleType="center"
            android:background="#FFFFBB33"
            android:contentDescription="@string/app_name" />
        <EditText
            android:id="@+id/username"
            android:inputType="textEmailAddress"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="16dp"
            android:layout_marginLeft="4dp"
            android:layout_marginRight="4dp"
            android:layout_marginBottom="4dp"
            android:hint="请输入用户名" />
        <EditText
            android:id="@+id/password"
            android:inputType="textPassword"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="4dp"
            android:layout_marginLeft="4dp"
            android:layout_marginRight="4dp"
            android:layout_marginBottom="16dp"
            android:fontFamily="sans-serif"
            android:hint="请输入密码"/>
    </LinearLayout>
    

     主要代码:

     AlertDialog.Builder builder = new AlertDialog.Builder(this);
            // Get the layout inflater
            LayoutInflater inflater = this.getLayoutInflater();
    
            // Inflate and set the layout for the dialog
            // Pass null as the parent view because its going in the dialog layout
            builder.setView(inflater.inflate(R.layout.demo7_custom_alert_view, null))
                    // Add action buttons
                    .setPositiveButton("登录", new DialogInterface.OnClickListener() {
    
                        @Override
                        public void onClick(DialogInterface dialog, int id) {
                            Toast.makeText(Demo7Activity.this,"登录",Toast.LENGTH_SHORT).show();
                        }
                    })
                    .setNegativeButton("取消", new DialogInterface.OnClickListener() {
                        public void onClick(DialogInterface dialog, int id) {
                            Toast.makeText(Demo7Activity.this,"取消",Toast.LENGTH_SHORT).show();
                        }
                    });
            builder.show();
    

    与之相对:ProgressDialog

     方式一:new Dialog  
        final ProgressDialog dialog = new ProgressDialog(this);  
        dialog.show();
    

     方式二:使用静态方式创建并显示,这种进度条只能是圆形条,设置title和Message提示内容

     ProgressDialog dialog2 = ProgressDialog.show(this, "提示", "正在登陆中");  
    
    // 方式三 使用静态方式创建并显示,这种进度条只能是圆形条,这里最后一个参数boolean indeterminate设置是否是不明确的状态  
        ProgressDialog dialog3 = ProgressDialog  
                .show(this, "提示", "正在登陆中", false);  
    
    // 方式四 使用静态方式创建并显示,这种进度条只能是圆形条,这里最后一个参数boolean cancelable 设置是否进度条是可以取消的  
        ProgressDialog dialog4 = ProgressDialog.show(this, "提示", "正在登陆中",  
                false, true);  
    
    // 方式五 使用静态方式创建并显示,这种进度条只能是圆形条,这里最后一个参数 DialogInterface.OnCancelListener  
        // cancelListener用于监听进度条被取消  
        ProgressDialog dialog5 = ProgressDialog.show(this, "提示", "正在登陆中", true,  
                true, cancelListener);  
    private OnCancelListener cancelListener = new OnCancelListener() {  
      
        @Override  
        public void onCancel(DialogInterface dialog) {  
            // TODO Auto-generated method stub  
            Toast.makeText(MainActivity.this, "进度条被取消", Toast.LENGTH_LONG)  
                    .show();  
      
        }  
    };  
     
    ProgressDialog dialog = new ProgressDialog(this);  
            dialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);// 设置进度条的形式为圆形转动的进度条  
            dialog.setCancelable(true);// 设置是否可以通过点击Back键取消  
            dialog.setCanceledOnTouchOutside(false);// 设置在点击Dialog外是否取消Dialog进度条  
            dialog.setIcon(R.drawable.ic_launcher);//  
            // 设置提示的title的图标,默认是没有的,如果没有设置title的话只设置Icon是不会显示图标的  
            dialog.setTitle("提示");  
    
  • 相关阅读:
    【Android】HAL分析
    【qt】QT 的信号与槽机制
    【驱动】DM9000A网卡驱动框架源码分析
    【驱动】LCD驱动(FrameBuffer)分析
    告别我的OI生涯
    诸神的黄昏——北林退役帖合集
    cf592d
    北京林业大学就读体验
    hdu 5442 (ACM-ICPC2015长春网络赛F题)
    JAVA入门[4]-IntelliJ IDEA配置Tomcat
  • 原文地址:https://www.cnblogs.com/hualuoshuijia/p/7060398.html
Copyright © 2011-2022 走看看