`

android 自定义登陆弹出框

阅读更多



 

 从本节将开始阐述一个完整系统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>

 

  • 大小: 50.7 KB
  • 大小: 56.8 KB
分享到:
评论

相关推荐

    Android自定义弹出框实现(修改版)完整实例源码

    这个“Android自定义弹出框实现(修改版)完整实例源码”就是一个很好的示例,它展示了如何根据自己的需求设计和构建个性化的弹出框。下面将详细介绍这个实例中的关键知识点。 首先,我们要理解Android中的弹出框...

    android自定义弹出框

    android自定义弹出框android自定义弹出框android自定义弹出框android自定义弹出框android自定义弹出框android自定义弹出框android自定义弹出框android自定义弹出框android自定义弹出框android自定义弹出框android...

    android自定义弹出框实现(修改版).zip

    本项目“android自定义弹出框实现(修改版)”是一个针对原生Android弹出框进行定制化改造的例子,主要涉及Java编程语言。下面将详细讲解这个项目的重点知识点。 1. **自定义对话框类**: 在Android中,通常使用`...

    Android自定义底部弹出框ButtomDialog

    Android自定义底部弹出框ButtomDialog Android自定义底部弹出框ButtomDialog是一种常用的Android用户界面控件,它可以在应用程序中提供一个弹出式的菜单或对话框,以便用户更方便地进行操作。下面将详细介绍Android...

    Android 自定义弹出框

    自定义弹出框允许开发者根据应用程序的风格和需求,定制弹出框的外观和功能,使其更加符合用户体验。本文将详细讲解如何在Android中创建一个自定义的弹出框,并实现自定义的取消和确定按钮。 首先,我们来理解...

    android自定义弹出框实现

    总结来说,Android自定义弹出框的实现主要包括以下步骤: 1. 创建自定义布局文件,定义弹出框内容。 2. 在代码中加载布局,创建Dialog实例并设置属性。 3. 绑定事件,处理用户交互。 4. 可选地,设置自定义动画和...

    Android自定义弹出框

    在Android开发中,自定义弹出框(Dialog)是一个常用的功能,它允许开发者根据应用的UI风格和功能需求创建独特且交互性强的对话界面。本文将深入探讨如何在Android中自定义实现弹出框,主要关注`自定义Dialog`这一...

    可自定义的底部弹出框

    总结来说,"可自定义的底部弹出框"是一种常用的Android界面组件,它结合了GridView、自适应布局和动画效果,提供了灵活且友好的用户交互方式。通过学习和实践,开发者可以将这种设计应用于各种应用场景,提升应用的...

    android自定义弹出框样式的实现方法

    做项目时,感觉android自带的弹出框样式比较丑,很多应用都是自己做的弹出框,这里也试着自己做了一个。 废话不说先上图片: 实现机制 1.先自定义一个弹出框的样式 2.自己实现CustomDialog类,继承自Dialog,实现...

    动态的弹出框,可以自定义布局,使用简单

    一个动态的弹出框,可以做动态提示什么的,自定义布局放入就可以。使用非常简单,并且做了性能上的优化,内存占用较小。但是发现个长时间弹出内存会升高,暂未发现原因

    自定义dialog弹出框

    在Android开发中,自定义Dialog弹出框是一个常见的需求,它可以帮助我们提供更丰富的用户交互体验,使得信息提示或者操作选择更加个性化。本篇将详细讲解如何创建和使用自定义Dialog,以及涉及到的相关知识点。 ...

    Flutter高阶技术:如何实现自定义弹出菜单框

    在Flutter开发中,自定义弹出菜单框是提高应用交互性和用户体验的重要手段。Flutter作为一个跨平台的移动开发框架,提供了丰富的API和工具,使得开发者能够轻松实现这样的功能。本篇文章将深入探讨如何在Flutter中...

    android 自定义退出提示弹出框

    在Android应用开发中,自定义退出提示弹出框是一个常见的需求,它可以帮助用户在退出应用时得到明确的提示,提高用户体验。本篇文章将详细讲解如何实现这样一个功能。 首先,我们来了解一下`Dialog`和`PopupWindow`...

    Android自定义弹出多选框,可全选

    在主Activity或Fragment中,我们创建并显示这个弹出框。这通常涉及到一个DialogFragment的使用,以便在需要时弹出并关闭。在DialogFragment的布局中,添加一个按钮用于全选和取消全选的功能。 ```java public class...

    AnimDislog(自定义弹出框-监听系统返回键).rar

    总的来说,"AnimDislog(自定义弹出框-监听系统返回键).rar"这个压缩包提供的案例涵盖了Android中自定义对话框的创建、动画效果的实现以及系统返回键的监听,这些都是Android开发者必备的技能。通过实践和理解这些...

    自定义下拉弹出框

    自定义下拉弹出框,效果如QQ账号选择时候的下拉列表 使用ListView和PopupWindow实现 PopupWindow // 设置为true,才能获得焦点,其里面的空间才能响应事件 //true if the popup can be focused, false otherwise ...

    Android:动画实现精美的弹出框(仿易信)

    2. **自定义PopupWindow**:在Android中,我们可以使用PopupWindow类来实现弹出框。首先,我们需要实例化PopupWindow,并设置其宽度、高度和内容视图。同时,可以设置PopupWindow的背景透明度,以便于实现半透明效果...

Global site tag (gtag.js) - Google Analytics