zoukankan      html  css  js  c++  java
  • Android Dialog

    package com.he.h0317_dialog;
    
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;
    
    import android.app.Activity;
    import android.app.AlertDialog;
    import android.app.Dialog;
    import android.app.Notification;
    import android.app.NotificationManager;
    import android.app.PendingIntent;
    import android.content.DialogInterface;
    import android.content.Intent;
    import android.os.Bundle;
    import android.text.Html;
    import android.view.Menu;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.SimpleAdapter;
    import android.widget.TableLayout;
    import android.widget.Toast;
    
    public class MainActivity extends Activity {
    
        private Button commonDialog;
        private Button radioButtonDialog;
        private Button checkboxDialog;
        private Button listDialog;
        private Button customDialog;
        
        private static final int NOTIFICATION_ID = 0x1101;
        
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            
            findViewById();
        }
        
        public void findViewById() {
            commonDialog = (Button) findViewById(R.id.commonDialog);
            radioButtonDialog = (Button) findViewById(R.id.radioButtonDialog);
            checkboxDialog = (Button) findViewById(R.id.checkboxDialog);
            listDialog = (Button) findViewById(R.id.listDialog);
            customDialog = (Button) findViewById(R.id.customDialog);
            
            commonDialog.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    openCommonDialog();
                }
            });
            radioButtonDialog.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    openRadioButtonDialog();
                }
            });
            checkboxDialog.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    openCheckboxDialog();
                }
            });
            listDialog.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    openListDialog();
                }
            });
            customDialog.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    openCustomDialog();
                }
            });
        }
    
        @Override
        public boolean onCreateOptionsMenu(Menu menu) {
            // Inflate the menu; this adds items to the action bar if it is present.
            getMenuInflater().inflate(R.menu.main, menu);
            return true;
        }
        
        /**
         * 普通的对话框
         */
        public void openCommonDialog() {
            //builder 设计模式
            final AlertDialog.Builder builder = new AlertDialog.Builder(this);
            //设置对话框的标题
            builder.setTitle("请确认您的电子邮箱地址");
            builder.setMessage(Html.fromHtml("<font color='red'>消息内容了</font>"));
            
            builder.setIcon(getResources().getDrawable(R.drawable.mail));
            builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    Toast.makeText(MainActivity.this, "取消按钮, which: " + which, Toast.LENGTH_SHORT).show();
                }
            });
    
            builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    Notification notify = new Notification(R.drawable.games, "确认按钮, which:" + which, System.currentTimeMillis());
                    //为notify设置声音
                    notify.defaults = Notification.DEFAULT_SOUND;
                    //为notify设置默认声音、默认震动、默认闪光灯
                    notify.defaults = Notification.DEFAULT_ALL;
                    
                    Intent intent = new Intent(MainActivity.this, MainActivity.class);
                    //Context context, int requestCode, Intent intent, int flags
                    PendingIntent pi = PendingIntent.getActivity(MainActivity.this, 0, intent, 0);
                    
                    //让声音、振动无限循环,直到用户响应
                    notify.flags |= Notification.FLAG_INSISTENT;
                    //通知被点击后,自动消失
                    notify.flags |= Notification.FLAG_AUTO_CANCEL;
                    //点击'Clear'时,不清楚该通知(QQ的通知无法清除,就是用的这个)
                    notify.flags |= Notification.FLAG_NO_CLEAR;
                    
                    //设置事件信息
                    notify.setLatestEventInfo(MainActivity.this, "通知 contentTitle", "通知 contentText", pi);
                    //获取系统的NotificationManager 服务
                    NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
                    notificationManager.notify(NOTIFICATION_ID, notify);
                }
            });
            
            builder.setNeutralButton("中立的按钮", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    Toast.makeText(MainActivity.this, "中立按钮, which: " + which, Toast.LENGTH_SHORT).show();
                }
            });
            
            Dialog dialog = builder.create();
            dialog.show();
        }
        
        /**
         * 单选按钮对话框
         */
        public void openRadioButtonDialog() {
            //builder 设计模式
            final AlertDialog.Builder builder = new AlertDialog.Builder(this);
            //设置对话框的标题
            builder.setTitle("请选择您喜欢的项目");
            
            builder.setIcon(getResources().getDrawable(R.drawable.audio_player));
            String[] items = new String[]{"游泳", "足球", "电玩"};
            
            builder.setSingleChoiceItems(items, 1, new DialogInterface.OnClickListener() {
    
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    Toast.makeText(MainActivity.this, "你选择了, which: " + which, Toast.LENGTH_SHORT).show();
                }
                
            });
            
            builder.setPositiveButton("OK", null);
            
            Dialog dialog = builder.create();
            dialog.show();
        }
        
        /**
         * 多选按钮对话框
         */
        public void openCheckboxDialog() {
            //builder 设计模式
            final AlertDialog.Builder builder = new AlertDialog.Builder(this);
            //设置对话框的标题
            builder.setTitle("请选择您喜欢的项目");
            
            builder.setIcon(getResources().getDrawable(R.drawable.audio_player));
            final String[] items = new String[]{"游泳", "足球", "电玩"};
            boolean[] select = new boolean[]{true, false, true};
            
            builder.setMultiChoiceItems(items, select, new DialogInterface.OnMultiChoiceClickListener() {
                
                @Override
                public void onClick(DialogInterface dialog, int which, boolean isChecked) {
                    Toast.makeText(MainActivity.this, "你选择了, which: " + items[which] + "  " + (isChecked ? "ON" : "OFF") , Toast.LENGTH_SHORT).show();
                }
            });
            
            builder.setPositiveButton("OK", null);
            
            Dialog dialog = builder.create();
            dialog.show();
        }
        
        /**
         * 列表对话框
         */
        public void openListDialog() {
            //builder 设计模式
            final AlertDialog.Builder builder = new AlertDialog.Builder(this);
            //设置对话框的标题
            builder.setTitle("请选择您喜欢的项目");
            
            builder.setIcon(getResources().getDrawable(R.drawable.radio));
            final String[] items = new String[]{"游泳", "足球", "电玩", "进修", "美人"};
            final int[] icons = new int[]{R.drawable.audio_player, R.drawable.camera, R.drawable.games, R.drawable.mail, R.drawable.radio};
    
            final List<Map<String, Object>> listItems = new ArrayList<Map<String, Object>>(5);
            for(int i = 0; i < items.length; i++) {
                Map<String, Object> item = new HashMap<String, Object>();
                item.put("dialog_name", items[i]);
                item.put("dialog_icon", icons[i]);
                listItems.add(item);
            }
            
            SimpleAdapter adapter = new SimpleAdapter(this
                    , listItems
                    , R.layout.list_item
                    , new String[]{"dialog_name", "dialog_icon"}
                    , new int[]{R.id.dialog_name, R.id.dialog_icon});
    
            builder.setAdapter(adapter, new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    Map<String, Object> item = listItems.get(which);
                    Toast.makeText(MainActivity.this, "你选择了, which: " + item.get("dialog_name"), Toast.LENGTH_SHORT).show();
                }
            });
            
            Dialog dialog = builder.create();
            dialog.show();
        }
        
        /**
         * 自定义对话框
         */
        public void openCustomDialog() {
            //builder 设计模式
            final AlertDialog.Builder builder = new AlertDialog.Builder(this);
            //设置对话框的标题
            builder.setTitle("请选择您的信息");
            
            builder.setIcon(getResources().getDrawable(R.drawable.radio));
            
            //装载layout
            final TableLayout login = (TableLayout) getLayoutInflater().inflate(R.layout.login, null);
            builder.setView(login);
            
            builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
                
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    EditText usernameEdit = (EditText) login.findViewById(R.id.usernameEdit);
                    
                    if(usernameEdit != null) {
                        Toast.makeText(MainActivity.this, "用户名:" + usernameEdit.getText(), Toast.LENGTH_SHORT).show();
                    }
                }
            });
            
            Dialog dialog = builder.create();
            dialog.show();
        }
    
    }
  • 相关阅读:
    webim-界面细节调整
    使用PHP得到所有的HTTP请求头_还有应答头
    Bootstrap学习的点点滴滴
    asterisk中eyebeam与移动的IMS帐号对接
    总结Ajax跨域调用问题
    Spring【基础】-注解-转载
    Spring-【高阶】注解-转载
    让你的IDEA倍爽
    IDEA的git密码修改
    Idea设置签名
  • 原文地址:https://www.cnblogs.com/hzm112567/p/3612356.html
Copyright © 2011-2022 走看看