• android 之对话框的使用


    以此之前写过一篇对话框的使用,代码不够通用。android 系统已经为我们做的很好了。接下来。我们学习一下,怎么使用。

    现在有这么一个场景,让用户去登陆,输入完用户名和密码时,弹出一个进度框,成功后进入第二个页面,如果登陆不成功,弹出提示对话框。

    定义两个常量用来标识某一个对话框。

       private static final int LOGIN_FLAG = 0;//登陆
       private static final int LOGIN_FLAG_FAIL = 1;//登陆失败

    当用户点击登陆按钮时。    

    showDialog(LOGIN_FLAG);

    同时,调用系统为我们封装的 方法。

    @Override
    	protected Dialog onCreateDialog(int id) {
    		Dialog dialog = null;
    		switch (id) {
    		case LOGIN_FLAG:
    			dialog = new ProgressDialog(this);
    			((ProgressDialog)dialog).setIndeterminate(true);
    			((ProgressDialog)dialog).setTitle(getString(R.string.holdno));
    			((ProgressDialog)dialog).setMessage(getString(R.string.holdnoMessage));
    			
    			break;
    		
    		case LOGIN_FLAG_FAIL:
    			Builder builder = new Builder(this);
    			builder.setTitle("提示");
    			builder.setPositiveButton("确定", null);
    			if(id == LOGIN_FLAG_FAIL) {
    				builder.setMessage("登陆失败!");
    			}
    			dialog = builder.create();
    			break;
    
    		default:
    			break;
    		}
    		return dialog;
    	}
    	@Override
    	protected void onPrepareDialog(int id, Dialog dialog) {
    		switch (id) {
    		case LOGIN_FLAG:
    			
    			break;
    
    		default:
    			break;
    		}
    	}
    
    	
    	/**关闭ProgressDialog*/
    	private void safeDismissDialog(int id) {
    		try {
    			dismissDialog(id);
    			removeDialog(id);
    		} catch (Exception e) {
    			e.printStackTrace();
    		}
    	}
    
    当登陆失败时。把进程框关了。关把提示对话框展示出来。

     if(!loginResult) {  
    // Toast.makeText(LoginUserActivity.this, "错误的用户名或密码",  Toast.LENGTH_SHORT).show();
       safeDismissDialog(LOGIN_FLAG);
       showDialog(LOGIN_FLAG_FAIL);
      }  

    结果图:



    注:由于子线程不能对主线程进行影响。所以当登陆失败时,需要使用 Handler 发送信息, 并在hander 中接收,然后再弹出对话框。

  • 相关阅读:
    Linux命令应用大词典-第11章 Shell编程
    Kubernetes 学习12 kubernetes 存储卷
    linux dd命令
    Kubernetes 学习11 kubernetes ingress及ingress controller
    Kubernetes 学习10 Service资源
    Kubernetes 学习9 Pod控制器
    Kubernetes 学习8 Pod控制器
    Kubernetes 学习7 Pod控制器应用进阶2
    Kubernetes 学习6 Pod控制器应用进阶
    Kubernetes 学习5 kubernetes资源清单定义入门
  • 原文地址:https://www.cnblogs.com/java20130726/p/3218320.html
Copyright © 2020-2023  润新知