###一、实现思路
登陆功能实现思路:
1、通过Java获取View页面的相关控件,并对需要的控件安装事件监听
2、登录前需要对当前用户进行检查,是否在本机上有过登陆状态记录,有过记录就读取本地的XML文件输入用户手机号和密码(上一次登陆有过"记住密码"操作的情况下)
3、本地登陆实现:
1)判断账号密码是否为空
2)显示加载框//保留项
3)开辟新线程进行登陆操作
禁止登陆按钮可用
线程睡眠1秒
向服务器发送请求进行信息核对
登陆成功提示并且保存用户登陆表单的信息和状态设置,并且进行View跳转后,finish()当前页面
登陆失败给予信息提示并且恢复登陆按钮可用和对加载框进行隐藏操作
###二、Android开发过程
1)清单文件AndroidManifest.xml的使用
2)layout下xml文件的构建(相当于HTML页面),实例:activity_main.xml和activity_login.xml,先把activity页面的XML构建出来先(相当于静态HTML)
3)页面的构建过程可能需要关联其他的XML文件或其他类型文件,例:页面设计的颜色统一放到res/values下的colors.xml;页面的静态字段统一放到res/values下的strings.xml;还有一个styles.xml文件专门用来配置主题风格,也就是不同设备的风格适配,以达到不同设备下可能存在的API版本不同的问题,通过在styles.xml下设置多种不同的主题风格,让APP自动识别系统API版本自动选择对应的主题风格达到同一APP在不同API版本系统下的显示的主题风格不同的效果;有些效果可能需要在drawable文件下进行绘制特定效果的XML文件,然后在layout文件下的activity_**.xml的文件中通过@drawable/repeat_bg的方式导入(repeat_bg其实是repeat_bg.xml文件,如果将整个文件作为一个activity的局部效果就可以通过这种方式导入,并且把后缀名去掉)
###三、代码实现
####3.1首先构建activity的第一个页面:activity_login.xml,activity_main.xml这个默认页面不作修改
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
android:id="@+id/v_1"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="58px"
android:orientation="horizontal">
<ImageView
android:id="@+id/return_bt"
android:layout_width="50px"
android:layout_height="wrap_content"
android:layout_gravity="left"
android:layout_marginLeft="40px"
android:contentDescription="@string/return_bt"
android:src="@drawable/return_bt" />
<ImageView
android:id="@+id/theme"
android:layout_width="264dp"
android:layout_height="match_parent"
android:layout_gravity="left"
android:layout_marginLeft="30px"
android:contentDescription="@string/log_theme"
android:src="@drawable/theme" />
</LinearLayout>
<LinearLayout
android:id="@+id/v_2"
android:layout_width="match_parent"
android:layout_height="68dp"
android:orientation="horizontal">
<TextView
android:id="@+id/pwd_menu"
android:layout_width="50dp"
android:layout_height="31dp"
android:layout_gravity="bottom|right"
android:layout_marginBottom="10dp"
android:layout_weight="1"
android:gravity="center"
android:text="密码登陆"
android:textSize="