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