Android自定义登陆窗口-对话框

dilog.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="fill_parent"
   android:layout_height="wrap_content"
   android:orientation="vertical">
    
   <TextView
      android:id="@+id/txt_loginerror"
      android:layout_height="wrap_content"
      android:layout_width="wrap_content"
      android:layout_marginLeft="20dip"
      android:layout_marginRight="20dip"
      android:textColor="#ff0000"
      android:text="输入的账号和密码不正确"
      android:gravity="left"
      android:textAppearance="?android:attr/textAppearanceMedium" 
      android:visibility="invisible"
   />
   
   
   <TextView
      android:id="@+id/username"
      android:layout_height="wrap_content"
      android:layout_width="wrap_content"
      android:layout_marginLeft="20dip"
      android:layout_marginRight="20dip"
      android:text="账号"
      android:gravity="left"
      android:textAppearance="?android:attr/textAppearanceMedium" 
   />
      
    <EditText
      android:id="@+id/txt_username"
      android:layout_height="wrap_content"
      android:layout_width="fill_parent"
      android:layout_marginLeft="20dip"
      android:layout_marginRight="20dip"
      android:autoText="false"
      android:capitalize="none"
      android:gravity="fill_horizontal"
      android:textAppearance="?android:attr/textAppearanceMedium" 
      />
    <TextView
      android:id="@+id/password"
      android:layout_height="wrap_content"
      android:layout_width="wrap_content"
      android:layout_marginLeft="20dip"
      android:layout_marginRight="20dip"
      android:textAppearance="?android:attr/textAppearanceMedium" 
      android:text="密码"
      android:gravity="left"
      />
    <EditText
      android:id="@+id/txt_password"
      android:layout_height="wrap_content"
      android:layout_width="fill_parent"
      android:layout_marginLeft="20dip"
      android:layout_marginRight="20dip"
      android:autoText="false"
      android:capitalize="none"
      android:gravity="fill_horizontal"
      android:textAppearance="?android:attr/textAppearanceMedium" 
     />
     
        <TextView
      android:id="@+id/txt_toregister"
      android:layout_height="wrap_content"
      android:layout_width="wrap_content"
      android:layout_marginLeft="20dip"
      android:layout_marginRight="20dip"
      android:textColor="#2200C1"
      android:textAppearance="?android:attr/textAppearanceMedium" 
      android:text="没有账号?快速注册"
      android:gravity="left"
      />
     
</LinearLayout>

代码里面:

private void CreateLoginAlert()
	{
		LayoutInflater factory = LayoutInflater.from(LoginActivity.this);
		//得到自定义对话框
	    View DialogView = factory.inflate(R.layout.login_dialog, null);
	         
		AlertDialog.Builder ad =new AlertDialog.Builder(this); 
		ad.setTitle("账号登陆");        
		ad.setView(DialogView);    
		adi=  ad.create();
		
		adi.setButton("登录", new DialogInterface.OnClickListener() {
			
			@Override
			public void onClick(DialogInterface dialog, int which) {
				// TODO Auto-generated method stub
				username = (EditText)adi.findViewById(R.id.txt_username);
				password = (EditText)adi.findViewById(R.id.txt_password);
				loginerror = (TextView)adi.findViewById(R.id.txt_loginerror);
				
				m_Dilog=ProgressDialog.show(LoginActivity.this, "请等待...", "正在为你登陆...",true);
				mRedrawHandler.sleep(100);
			}
		});

		adi.setButton2("取消", new DialogInterface.OnClickListener() {
			
			@Override
			public void onClick(DialogInterface dialog, int which) {
				// TODO Auto-generated method stub
				
			}
		});
		adi.show();
		
		}
	
	private RefreshHandler mRedrawHandler = new RefreshHandler();
	class RefreshHandler extends Handler{

		@Override
		public void handleMessage(Message msg) {
			// TODO Auto-generated method stub
			try {
	            socket = new Socket("113.250.155.194", 9999);
	            in = new BufferedReader(new InputStreamReader(
	                    socket.getInputStream()));
	            out = new PrintWriter(socket.getOutputStream());
	        } catch (Exception e) {
	            e.printStackTrace();
	        }
			
			if(username.getText().length() == 0)
			{
				adi.show();
				loginerror.setText("账号不能为空!");
				loginerror.setVisibility(loginerror.VISIBLE);
				
			}else if(password.getText().length() == 0){
				adi.show();
				loginerror.setText("密码不能为空!");
				loginerror.setVisibility(loginerror.VISIBLE);
				}else{
			UserModel users = new UserModel();
			users.setUserName(username.getText().toString());
			users.setUserPass(password.getText().toString());
			users.setUserState(1);
	        users.setGuanliyuan(0);
	        out.println("login&" + UserModel.userToString(users));
            out.flush();
            
            String line;
			try {
				line = in.readLine();
				System.out.println("登录窗口从服务器收到的消息为:" + line);
				 if (line.startsWith("LOGINOK")) {
					 System.out.println(line.toString());
		                UserModel user = UserModel.getUserByString(line);                 
		                out.println("updateList&" + UserModel.userToString(user));
		                out.flush();
		                
		                Toast.makeText(LoginActivity.this, "登陆成功", Toast.LENGTH_SHORT).show();
		                //ChatFrame cf = new ChatFrame(user.getNick(), user.getGuanliyuan());
		               // cf.setLocation(250, 50);
		                //cf.setVisible(true);
		                //cf.connect(in, out);
		                //this.dispose();
		               // return;
		            }else
				 if (line.equals("ERROR")) {
					 Toast.makeText(LoginActivity.this, "登陆失败", Toast.LENGTH_SHORT).show();
					 adi.show();
					 adi.findViewById(R.id.txt_loginerror).setVisibility(View.VISIBLE);
		            }
			} catch (IOException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}finally{
				m_Dilog.dismiss();
			}
			super.handleMessage(msg);
		}
			}
		
		public void sleep(long delayMillis)
		{
			this.removeMessages(0);
			sendMessageDelayed(obtainMessage(0), delayMillis);
		}
	}



就这么简单,效果图如下:

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值