首页 / 操作系统 / Linux / Android自定义登陆窗口-对话框
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>代码里面:<PRE class=java name="code">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); } }就这么简单,效果图如下:
收藏该网址