上一篇为大家分享了关于AsyncTask的使用,本篇结合AsyncTask为大家介绍一个我们经常看到的一个效果,就是当我们点击登录后,会弹出一个请等待的小窗体,这个效果是如何实现的呢?本篇我就带大家简单实现一下。

首先请看效果图:

就是当我们填写好个人信息后,点击登录,然后就进入了这个界面,好了,下面我们一起来实现一下。

第一步:布局文件:activity_main.xml

android:id="@+id/textView1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentLeft="true"android:layout_alignParentTop="true"android:layout_marginTop="22dp"android:text="邮箱:" />

android:id="@+id/editText1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignBaseline="@+id/textView1"android:layout_alignBottom="@+id/textView1"android:layout_marginLeft="15dp"android:layout_toRightOf="@+id/textView1"android:ems="10"android:inputType="textEmailAddress" />

android:id="@+id/textView2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below="@+id/editText1"android:layout_marginTop="40dp"android:layout_toLeftOf="@+id/editText1"android:text="密码:" />

android:id="@+id/editText2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignBaseline="@+id/textView2"android:layout_alignBottom="@+id/textView2"android:layout_alignLeft="@+id/editText1"android:ems="10"android:inputType="textPassword" />

android:id="@+id/button1"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_below="@+id/editText2"android:layout_marginTop="43dp"android:layout_toRightOf="@+id/textView2"android:text="登录" />

android:id="@+id/button2"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignBaseline="@+id/button1"android:layout_alignBottom="@+id/button1"android:layout_marginLeft="34dp"android:layout_toRightOf="@+id/button1"android:text="注册" />

第二步:主Activity:

public classMainActivity extends Activity implements OnClickListener{privateEditText mEditText1;privateEditText mEditText2;privateButton mButton1;privateButton mButton2;privateString email;privateString password;privatemyAsyncTast tast;private ProgressDialog dialog = null;

@Overrideprotected voidonCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

init();//对控件进行初始化

}private voidinit() {

mEditText1=(EditText) findViewById(R.id.editText1);

mEditText2=(EditText) findViewById(R.id.editText2);

mButton1=(Button) findViewById(R.id.button1);

mButton2=(Button) findViewById(R.id.button2);

mButton1.setOnClickListener(this);

mButton2.setOnClickListener(this);

}

@Overridepublic voidonClick(View arg0) {switch(arg0.getId()) {caseR.id.button1:

getEditTextValue();//获得用户的输入

tast = new myAsyncTast();//创建AsyncTask

tast.execute();//启动AsyncTask

break;caseR.id.button2:

Toast.makeText(MainActivity.this, "注册", Toast.LENGTH_SHORT).show();break;

}

}private voidgetEditTextValue() {

email=mEditText1.getText().toString();

password=mEditText2.getText().toString();

}class myAsyncTast extends AsyncTask{

@Overrideprotected voidonPreExecute() {

super.onPreExecute();

dialog= ProgressDialog.show(MainActivity.this, "登录提示", "正在登录,请稍等...", false);//创建ProgressDialog

}

@OverrideprotectedVoid doInBackground(Void... arg0) {

Http http= newHttp();int n = http.send(email, password);//发送给服务器

publishProgress(n);return null;

}

@Overrideprotected voidonProgressUpdate(Integer... values) {

super.onProgressUpdate(values);

dialog.dismiss();//关闭ProgressDialog

if(values[0]==1){

Toast.makeText(MainActivity.this, "登录成功", Toast.LENGTH_SHORT).show();

}else{

Toast.makeText(MainActivity.this, "登录失败", Toast.LENGTH_SHORT).show();

}

}

}

}

第三步:服务器端(简单起见,仅仅是模拟)

/** 模拟服务器端*/

public classHttp {private int n = 0;public intsend(String email, String password){try{

Thread.sleep(5000);//模拟网络加载

} catch(InterruptedException e) {

e.printStackTrace();

}if(email.equals("")&&password.equals("123456")){

n=1;

}returnn;

}

}

在这里需要说明的时,当我们真正开发时,需要向服务器发送数据时,我们需要在:AndroidManifest.xml文件中声明访问网络权限。

对于上面的内容,AsyncTask上一篇已经为大家进行了详细的介绍,如果看本篇博客你赶脚有些吃力,请仔细研究一下上一篇的博客,这里就不再赘述,对于ProgressDialog本人也是初次使用,不过可以为大家推荐一篇博客:http://blog.csdn.net/caesardadi/article/details/11982721,这里介绍的非常的详细,有兴趣的童鞋可以好好研究一下。

原文:http://www.cnblogs.com/AndroidJotting/p/4474793.html

android控件ems,Android登录等待效果相关推荐

  1. android控件之间的过渡动画效果,Android - 交换控件位置:基于LayoutParams的瞬间交换与基于ObjectAnimator动画效果交换...

    现需要交换两个控件(本文中是两个RelativeLayout),找到了两个方法: 1.使用LayoutParams改变两个layout的属性,即其相对关系(below等),实现位置的交换,但是并没有交 ...

  2. android水波纹点击动画,android 控件点击水波纹效果的几种方案

    目前我所知道的至少有三种可以实现点击水波纹的效果 第一种:安卓自带的方法 在安卓中有自带的一种属性,可以实现水波纹的效果,就是在所需要点击的控件属性加上如下代码: android:background ...

  3. android 控件遮盖,Android手机软键盘遮挡布局控件

    在Activity中的布局的下方有EditText获取焦点弹出软键盘的时候,如果不作处理,软键盘可能会遮挡输入框或者一些按键,这样的用户体验比较差. 这里整理了几种处理方式,可以使页面整体上移.并且提 ...

  4. android控件单位,Android控件相对位置及长度单位

    首先讲讲界面布局中的几位置设置参数区别,从下面一个简单的图形来做年对比,A代表我们布局页面中一个ViewGroup,比如是LinearLayout,B代码一个View,比如是Button. andro ...

  5. android 控件总结,Android制霸控件View总结

    关于Android View控件 Android中控件大致被分为两类ViewGroup,View.ViewGroup作为容器管理View.Android视图,是类似于Dom树的架构.父视图负责测量定位 ...

  6. android控件字体,android 设置控件的颜色字体的方法

    1.用代码设置控件的颜色: int b =  getResources().getColor(R.drawable.blue);//得到配置文件里的颜色 mButton.setTextColor(b) ...

  7. android 控件美化,Android UI 美化

    一.自定义RatingBar的样式: 1.在drawable文件夹下创建根节点为的文件写三个节点,代码如下:` android:drawable="@drawable/unselect&qu ...

  8. android 群英传代码,Android控件架构(Android群英传)

    内容是博主照着书敲出来的,博主码字挺辛苦的,转载请注明出处,后序内容陆续会码出. 控件大致被分为两类,ViewGroup控件和View控件.ViewGroup可以包含多个View并管理它们.通过Vie ...

  9. android 控件 margin,Android MarginDesign控件TabLayout导航栏使用详解

    TabLayout的使用简单介绍 比如在平常的项目中实现这样的效果,一般都是都会使用viewPageIndicate等几个开源框架直接实现,或者使用自定义的HorizontalScroll再配合Vie ...

最新文章

  1. c/C++计算int / int *数组的长度;sizeof(指针),sizeof(数组名)的区别
  2. python剑指offer跳台阶_【剑指offer】跳台阶I和II(Javapython)
  3. springboot系列八、springboot整合kafka
  4. 西格尔零点猜想_我从埃里克·西格尔学到的东西
  5. 整理总结一下:git恢复本地误删除的分支
  6. vue取通过key取value_如何通过获取map中的key来获得与key对应的value值,进行运算...
  7. 使用 ODBC .NET 提供程序和 Visual C# .NET 执行 SQL 参数化存储过程
  8. 实验2-2-1 计算分段函数[1] (10 分)
  9. 在Qtopia中添加国际化支持
  10. html 新浪微博分享申请,新浪微博API申请流程详解
  11. 树莓派4B全40管脚对应功能示意图
  12. 奕东电子深交所上市:市值115亿 小米产业基金是股东
  13. oracle excel导入卡死 新解决办法
  14. 防骗指南-QQ微信仿冒诈骗
  15. 移动端设计的基础尺寸单位与转化
  16. 程序员常说的外包公司到底是什么?
  17. 【吊打面试官系列】APP测试常见面试题解析
  18. GNU LGPL协议
  19. 雨量预警广播自动化数据平台BWII 型广播预警监测仪
  20. 建模中的定量预测拟合方法

热门文章

  1. 支付宝支付框js代码
  2. android布局之LinearLayout 转
  3. silverlight1.0绝对是垃圾,中文乱码,没治!
  4. VISUAL STUDIO 2019 快捷键
  5. 人脸识别成创业热门,统计企业超1万家,刷脸支付项目将迎来热潮
  6. 机器学习中数据处理与可视化的python、numpy等常用函数
  7. Labview串口通信
  8. DBCP使用BasicdataSource连接(两种单例模式-----饿汉和懒汉模式)
  9. 030_vue命名路由
  10. 010_数字内建函数