zoukankan      html  css  js  c++  java
  • PopupMenu和对话框的使用

    PopupMenu和对话框的使用

    1.菜单的使用之 PopupMenu

     

     

    步骤:1.创建popupMenu对象 参数:上下文对象   当前view对象

                2.利用getMenu().addSubMenu创建子菜单

                   3..show();显示菜单

       @SuppressLint("NewApi")
        public void popclick(final View view){
            PopupMenu pop=new PopupMenu(this,view);
            //添加一级菜单
            SubMenu sub=pop.getMenu().addSubMenu("文字颜色");
            //添加二级caidan 
            sub.add("红色");
            sub.add("绿色");
            sub.add("蓝色");
            //添加一级菜单
            SubMenu sub2=pop.getMenu().addSubMenu("文字大小");
            //添加二级caidan 

           //中间 1 2 3为 id
            sub2.add(0,1,0, "大");
            sub2.add(0,2,0,"中");
            sub2.add(0,3,0,"小");
            //显示出来
            pop.show();
            //监听事件
            pop.setOnMenuItemClickListener(new OnMenuItemClickListener() {
                
                @Override
                public boolean onMenuItemClick(MenuItem item) {
                    //设置按钮文字的大小和颜色
                    Button btn=(Button)view;
                    if(item.getTitle().equals("红色")){
                        btn.setTextColor(Color.RED);
                    }else if(item.getTitle().equals("绿色")){
                        btn.setTextColor(Color.GREEN);
                    }else if(item.getTitle().equals("蓝色")){
                        btn.setTextColor(Color.BLUE);
                    }
                    
                    switch (item.getItemId()) {
                    case 1:
                        btn.setTextSize(25);
                        break;
                    case 2:
                        btn.setTextSize(15);
                        break;
                    case 3:
                        btn.setTextSize(10);
                        break;
                    }
                    return false;
                }
            });
            
        }

     

    2.对话框

     

     

    1.PopupWindow 的使用(需要加载自定义布局文件)

        public void doClick(View view){
            //把xml转换成view
            View popView = LayoutInflater.from(this).inflate(R.layout.popupwindow, null);
            //实例化popupwindow  参数 view 宽  高
            PopupWindow pop=new PopupWindow(popView, 460, 460);
            //设置背景 是触摸空白处消失
            pop.setBackgroundDrawable(new ColorDrawable(0x00000000));
            //设置空白处可以触摸
            pop.setOutsideTouchable(true);
            //显示
            pop.showAtLocation(view, Gravity.CENTER, 0, 0);
            //找到弹出对话框布局的点击View对象
            Button btn=(Button) popView.findViewById(R.id.btn_pop);
            btn.setOnClickListener(new OnClickListener() {
                
                @Override
                public void onClick(View v) {
                      Random rd=new Random();
                      float money=rd.nextFloat()*100;
                      //保留两位小数点
                      DecimalFormat df=new DecimalFormat("#.00");
                    Toast.makeText(MainActivity.this,"您抢到了"+df.format(money)+"元", 0).show();

                    //对话框消失
                    pop.dismiss();
                }
            });
            
        }

     

    2. AlertDialog的使用

    public void doclick(View view){
            //创建AlertDialog.builder对象
            AlertDialog.Builder builder=new AlertDialog.Builder(this);
            //设置标题和点击事件
            builder.setTitle("温馨提示:").setMessage("你敢点击我吗?").setPositiveButton("确定",new OnClickListener() {
                
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    // TODO Auto-generated method stub
                    Toast.makeText(MainActivity.this,"您真的点击了我",0).show();
                    finish();    
                }
            }).setNegativeButton("取消", new OnClickListener() {
                
                @Override
                public void onClick(DialogInterface dialog, int which) {
                            
                }
            });
            
            Dialog dia=builder.create();
            dia.show();
        }

    3.ProgressDialog进度条


        public void doclick(View view){
            //创建ProgressDialog对象
             ProgressDialog dialog=new ProgressDialog(this);
             //设置标题
             dialog.setTitle("下载提示");
            //设置提示文本
             dialog.setMessage("正在下载...");
             //设置风格
             dialog.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
             //设置不确定值 true不确定  false 确定
             dialog.setIndeterminate(false);
             //设置不可以取消
             dialog.setCancelable(true);
             //设置最大值
             dialog.setMax(100);
             dialog.setProgress(88);
             //显示
             dialog.show();
        }

  • 相关阅读:
    Google 开源的 Python 命令行库:深入 fire(二)
    开启 Django 博客的 RSS 功能
    MongoDB 分片键的选择与案例
    Log4Net写入到数据库配置过程中的一些小问题备忘
    《WCF服务编程第三版》知识点摘录
    Android调用基于.net的WebService
    心跳包实现的另一种机制
    无法加载一个或多个请求的类型。有关更多信息,请检索 LoaderExceptions 属性。
    解决SaveChanges会Hold住之前的错误的问题
    memcached工作原理与优化建议
  • 原文地址:https://www.cnblogs.com/android-blogs/p/5724739.html
Copyright © 2011-2022 走看看