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();
        }

  • 相关阅读:
    扩展知识
    day61——多表操作(增、删除、改、基于对象的跨表查询)
    day60——单表操作补充(批量插入、查询、表结构)
    day59——orm单表操作
    day58——模板继承、组件、自定义标签和过滤器、inclusion_tag、静态文件配置、url别名和反向解析、url命名空间
    day57——视图、模板渲染
    WARNING: Ignoring invalid distribution -ip
    Python- 【python无法更新pip】提示python.exe: No module named pip
    Anaconda Prompt 切换路径不能进入D盘
    Failed calling sys.__interactivehook__ 错误的解决
  • 原文地址:https://www.cnblogs.com/android-blogs/p/5724739.html
Copyright © 2011-2022 走看看