Android自定义登陆窗口-对话框
来源:互联网 发布:java项目怎么发布 编辑:程序博客网 时间:2024/04/29 12:56
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() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stubusername = (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() {@Overridepublic void onClick(DialogInterface dialog, int which) {// TODO Auto-generated method stub}});adi.show();}private RefreshHandler mRedrawHandler = new RefreshHandler();class RefreshHandler extends Handler{@Overridepublic void handleMessage(Message msg) {// TODO Auto-generated method stubtry { 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 blocke.printStackTrace();}finally{m_Dilog.dismiss();}super.handleMessage(msg);}}public void sleep(long delayMillis){this.removeMessages(0);sendMessageDelayed(obtainMessage(0), delayMillis);}}
就这么简单,效果图如下:
- Android自定义登陆窗口-对话框
- Android简单的自定义用户登陆对话框
- android中的对话框:自定义对话框
- Android Dialog( 自定义对话框)
- android 自定义对话框
- android自定义对话框
- Android自定义对话框
- android 自定义对话框
- Android自定义Dialog对话框
- android自定义大小对话框
- android自定义对话框
- Android自定义对话框
- android 自定义对话框
- android 自定义对话框
- android自定义对话框
- android 自定义对话框动画
- Android弹出自定义对话框
- android自定义对话框
- 优先级队列
- POJ 1840 Eqs
- Straightforward Android Native Executables
- fill_parent和wrap_content的区别
- MFC让文档/视图结构程序支持滚动条
- Android自定义登陆窗口-对话框
- CGI接口原理及实现
- 《C++ Primer》 第08章 标准 IO 库 | Good !
- linux中input_register_device注册函数分析
- Lua中调用C++函数(一)
- 线程的生命周期
- 《嵌入式LINUX应用开发完全手册》-MMU
- 窗口管理内幕
- C语言-字符串的拷贝指针