博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
PopupMenu和对话框的使用
阅读量:7058 次
发布时间:2019-06-28

本文共 2828 字,大约阅读时间需要 9 分钟。

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

转载地址:http://ilrol.baihongyu.com/

你可能感兴趣的文章
收集的几篇关于Asp.Net处理原理和URL重写的几篇文章
查看>>
Bootstrap Table总结
查看>>
物联网如何跳出“看起来很美”?
查看>>
linux命令行后台运行与调回
查看>>
TryEnterCriticalSection
查看>>
用 Java 实现断点续传参考 (HTTP)
查看>>
VB6.0 取 毫秒级 时间戳
查看>>
unity KeyCode各键值说明
查看>>
Delphi中编写无输出函数名的DLL文件
查看>>
centos的基本命令04
查看>>
Codeforces Round #313 (Div. 2) D. Equivalent Strings(字符串+递归)
查看>>
20个案例掌握PL/SQL 基础
查看>>
windows下查看端口占用以及进程名称
查看>>
CH 5101 最长公共上升子序列
查看>>
水平分库分表的关键问题及解决思路
查看>>
Spring Boot 探索系列 - 自动化配置篇
查看>>
Jar包转成Dll的方式(带嵌套的jar也能做) (转)
查看>>
Linux-centos-7.2-64bit 安装配置mysql
查看>>
[javaEE] 控制浏览器缓存资源
查看>>
MyBatis传入参数为集合 list 数组 map写法
查看>>