- 浏览: 80189 次
- 性别:
- 来自: 深圳
文章分类
最新评论
从本节将开始阐述一个完整系统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>
发表评论
-
android 自定义view
2012-04-07 15:54 1661自定义view:1. 继承view,重构构造方法: publi ... -
Android 获取联系人
2012-03-22 17:18 1066Cursor cursor = content ... -
一些常用的控件及其项目实例
2011-12-16 09:49 885下载须知:进入下载页面后,可以点击普通用户进行下载,如图: ... -
listview实例 simpleAdapter自定义列
2011-12-16 09:30 1254listview 利用simpleAdapter自定义列布局, ... -
android音乐播放器开源项目实例
2011-12-16 09:17 1483android音乐播放器开源项目实例,部分效果图如下: ... -
Android QQ登陆界面实例
2011-12-16 09:01 1219QQ登陆效果: 代码下载: -
listview 滑动分页 contextmenu菜单用法
2011-12-15 16:13 2361这节将阐述一个listview 的滑动分页效果,和contex ... -
Spinner 和Menu菜单展示关于退出的用法
2011-12-15 15:40 2984这节接着上一节“自定义登陆弹出框”,我们编写一个spinne ... -
Android 全屏logo 页面
2011-12-15 14:41 3524package com.gk; import andr ...
相关推荐
这个“Android自定义弹出框实现(修改版)完整实例源码”就是一个很好的示例,它展示了如何根据自己的需求设计和构建个性化的弹出框。下面将详细介绍这个实例中的关键知识点。 首先,我们要理解Android中的弹出框...
android自定义弹出框android自定义弹出框android自定义弹出框android自定义弹出框android自定义弹出框android自定义弹出框android自定义弹出框android自定义弹出框android自定义弹出框android自定义弹出框android...
本项目“android自定义弹出框实现(修改版)”是一个针对原生Android弹出框进行定制化改造的例子,主要涉及Java编程语言。下面将详细讲解这个项目的重点知识点。 1. **自定义对话框类**: 在Android中,通常使用`...
Android自定义底部弹出框ButtomDialog Android自定义底部弹出框ButtomDialog是一种常用的Android用户界面控件,它可以在应用程序中提供一个弹出式的菜单或对话框,以便用户更方便地进行操作。下面将详细介绍Android...
自定义弹出框允许开发者根据应用程序的风格和需求,定制弹出框的外观和功能,使其更加符合用户体验。本文将详细讲解如何在Android中创建一个自定义的弹出框,并实现自定义的取消和确定按钮。 首先,我们来理解...
总结来说,Android自定义弹出框的实现主要包括以下步骤: 1. 创建自定义布局文件,定义弹出框内容。 2. 在代码中加载布局,创建Dialog实例并设置属性。 3. 绑定事件,处理用户交互。 4. 可选地,设置自定义动画和...
在Android开发中,自定义弹出框(Dialog)是一个常用的功能,它允许开发者根据应用的UI风格和功能需求创建独特且交互性强的对话界面。本文将深入探讨如何在Android中自定义实现弹出框,主要关注`自定义Dialog`这一...
总结来说,"可自定义的底部弹出框"是一种常用的Android界面组件,它结合了GridView、自适应布局和动画效果,提供了灵活且友好的用户交互方式。通过学习和实践,开发者可以将这种设计应用于各种应用场景,提升应用的...
做项目时,感觉android自带的弹出框样式比较丑,很多应用都是自己做的弹出框,这里也试着自己做了一个。 废话不说先上图片: 实现机制 1.先自定义一个弹出框的样式 2.自己实现CustomDialog类,继承自Dialog,实现...
一个动态的弹出框,可以做动态提示什么的,自定义布局放入就可以。使用非常简单,并且做了性能上的优化,内存占用较小。但是发现个长时间弹出内存会升高,暂未发现原因
在Android开发中,自定义Dialog弹出框是一个常见的需求,它可以帮助我们提供更丰富的用户交互体验,使得信息提示或者操作选择更加个性化。本篇将详细讲解如何创建和使用自定义Dialog,以及涉及到的相关知识点。 ...
在Flutter开发中,自定义弹出菜单框是提高应用交互性和用户体验的重要手段。Flutter作为一个跨平台的移动开发框架,提供了丰富的API和工具,使得开发者能够轻松实现这样的功能。本篇文章将深入探讨如何在Flutter中...
在Android应用开发中,自定义退出提示弹出框是一个常见的需求,它可以帮助用户在退出应用时得到明确的提示,提高用户体验。本篇文章将详细讲解如何实现这样一个功能。 首先,我们来了解一下`Dialog`和`PopupWindow`...
在主Activity或Fragment中,我们创建并显示这个弹出框。这通常涉及到一个DialogFragment的使用,以便在需要时弹出并关闭。在DialogFragment的布局中,添加一个按钮用于全选和取消全选的功能。 ```java public class...
总的来说,"AnimDislog(自定义弹出框-监听系统返回键).rar"这个压缩包提供的案例涵盖了Android中自定义对话框的创建、动画效果的实现以及系统返回键的监听,这些都是Android开发者必备的技能。通过实践和理解这些...
自定义下拉弹出框,效果如QQ账号选择时候的下拉列表 使用ListView和PopupWindow实现 PopupWindow // 设置为true,才能获得焦点,其里面的空间才能响应事件 //true if the popup can be focused, false otherwise ...
2. **自定义PopupWindow**:在Android中,我们可以使用PopupWindow类来实现弹出框。首先,我们需要实例化PopupWindow,并设置其宽度、高度和内容视图。同时,可以设置PopupWindow的背景透明度,以便于实现半透明效果...