从本节将开始阐述一个完整系统Demo,从登陆--主页--查询展示具体详情...这节是一个自定义登陆弹出框,接着上一节的logo全屏页面之后将出现一个全屏的ImagView,点击弹出自定义登陆框,输入账号密码提交,弹出提交等待框效果如图:
提交等待框:
代码:
- package com.gk;
- import android.app.Activity;
- import android.app.AlertDialog;
- import android.app.ProgressDialog;
- import android.content.DialogInterface;
- import android.content.Intent;
- import android.os.Bundle;
- import android.os.Handler;
- import android.os.Message;
- import android.view.ContextMenu;
- import android.view.ContextMenu.ContextMenuInfo;
- import android.view.LayoutInflater;
- import android.view.MenuItem;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.view.Window;
- import android.view.WindowManager;
- import android.widget.EditText;
- import android.widget.ImageView;
- import android.widget.Toast;
- import com.gk.data.UserDataServiceHelper;
- import com.gk.view.mainview;
- public class EHRActivity extends Activity implements OnClickListener{
- private ImageView button1;
- private String usernamestr;
- private String passwordstr;
- private ProgressDialog progressdialog;
- private AlertDialog selfdialog;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- this.requestWindowFeature(Window.FEATURE_NO_TITLE);//取消标题栏
- //取消状态栏
- this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
- WindowManager.LayoutParams.FLAG_FULLSCREEN);
- setContentView(R.layout.main);
- button1 =(ImageView) findViewById(R.id.button1);
- button1.setOnClickListener(this);
- // initview();
- }
- private View view;
- public void initview() {
- //创建view从当前activity获取loginactivity
- LayoutInflater inflater = (LayoutInflater) getApplicationContext().getSystemService(LAYOUT_INFLATER_SERVICE);
- view = inflater.inflate(R.layout.login, null);
- final EditText username=(EditText)view.findViewById(R.id.txt_username);
- final EditText password = (EditText)view.findViewById(R.id.txt_password);
- username.setText("XXXX");
- password.setText("XXXX"); //为了测试方便所以在这里初始化弹出框是填上账号密码
- AlertDialog.Builder ad =new AlertDialog.Builder(EHRActivity.this);
- ad.setView(view);
- ad.setTitle("账号登陆");
- selfdialog = ad.create();
- selfdialog.setButton("登陆", new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- //获取输入框的用户名密码
- usernamestr = username.getText().toString();
- passwordstr =password.getText().toString();
- progressdialog =ProgressDialog.show(EHRActivity.this, "请等待...", "正在为您登陆...");
- refreshHandler.sleep(100);
- //dialog.cancel();
- }
- });
- selfdialog.setButton2("取消", new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- selfdialog.cancel();
- }
- });
- selfdialog.show();
- }
- private RefreshHandler refreshHandler =new RefreshHandler();
- //处理器
- class RefreshHandler extends Handler{
- @Override
- public void handleMessage(Message msg) {
- try{
- //这里是提交到服务器的代码,封装代码这里不再给出,网上例子很多可以找找
- String host =UserDataServiceHelper.getHost();
- String uri=host+"/anndroiduser.do?user=login";
- /**flag 是接收来自服务器端的数据包装,这里客户与服务器交互用的是json
- json解析出对象,将对象放入bundle,如:
- Bundle bagent =new Bundle();
- bagent.putSerializable("agent", agent);
- */
- Bundle flag = UserDataServiceHelper.login(uri, usernamestr, passwordstr);
- if(flag !=null){
- Toast.makeText(EHRActivity.this, "登陆成功", Toast.LENGTH_SHORT).show();
- Intent intent =new Intent();
- intent.setClass(EHRActivity.this, mainview.class);
- intent.putExtras(flag);
- EHRActivity.this.startActivity(intent);
- }else{
- Toast.makeText(EHRActivity.this, "登陆失败", Toast.LENGTH_SHORT).show();
- view.findViewById(R.id.txt_loginerror).setVisibility(View.VISIBLE);
- }
- }catch(Exception e){
- e.printStackTrace();
- }finally{
- progressdialog.dismiss();//解除进度条
- }
- }
- public void sleep(long delayMillis){
- this.removeMessages(0);
- sendMessageDelayed(obtainMessage(0), delayMillis);
- }
- }
- @Override
- public void onClick(View v) {
- //创建view从当前activity获取loginactivity
- LayoutInflater inflater = (LayoutInflater) getApplicationContext().getSystemService(LAYOUT_INFLATER_SERVICE);
- view = inflater.inflate(R.layout.login, null);
- final EditText username=(EditText)view.findViewById(R.id.txt_username);
- final EditText password = (EditText)view.findViewById(R.id.txt_password);
- username.setText("3001");
- password.setText("3001");
- AlertDialog.Builder ad =new AlertDialog.Builder(EHRActivity.this);
- ad.setView(view);
- ad.setTitle("账号登陆");
- selfdialog =ad.create();
- selfdialog.setButton("登陆", new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- //获取输入框的用户名密码
- usernamestr = username.getText().toString();
- passwordstr =password.getText().toString();
- //提交的时候弹出一个进度条对话框,当处理完毕关闭
- progressdialog =ProgressDialog.show(EHRActivity.this, "请等待...", "正在为您登陆...");
- refreshHandler.sleep(100);
- //dialog.cancel();
- }
- });
- selfdialog.setButton2("取消", new DialogInterface.OnClickListener() {
- @Override
- public void onClick(DialogInterface dialog, int which) {
- selfdialog.cancel();
- }
- });
- selfdialog.show();
- }
- }
login.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_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginLeft="20dip"
- android:layout_marginRight="20dip"
- android:gravity="left"
- android:text="输入的账号和密码不正确"
- android:textAppearance="?android:attr/textAppearanceMedium"
- android:textColor="#ff0000"
- android:visibility="invisible" />
- <TextView
- android:id="@+id/username"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginLeft="20dip"
- android:layout_marginRight="20dip"
- android:gravity="left"
- android:text="账号"
- android:textAppearance="?android:attr/textAppearanceMedium" />
- <EditText
- android:id="@+id/txt_username"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- 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_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginLeft="20dip"
- android:layout_marginRight="20dip"
- android:gravity="left"
- android:text="密码"
- android:textAppearance="?android:attr/textAppearanceMedium" />
- <EditText
- android:id="@+id/txt_password"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- 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_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_marginLeft="20dip"
- android:layout_marginRight="20dip"
- android:gravity="left"
- android:textAppearance="?android:attr/textAppearanceMedium"
- android:textColor="#2200C1" />
- </LinearLayout>