登录案例

登录案例

  • 从三面入手 画页面 根据UI写逻辑 测试.
  • 代码实现[1]:画ui
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <EditText
        android:id="@+id/et_name"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="请输入用户名" />

    <EditText
        android:id="@+id/et_pwd"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="请输入密码" />

    <RelativeLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <CheckBox
            android:id="@+id/cb"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="保存密码" />

        <Button
            android:id="@+id/btn"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentRight="true"
            android:layout_toRightOf="@id/cb"
            android:text="登录" />
    </RelativeLayout>
</LinearLayout>
  • [2]根据ui写对应的业务逻辑
  • [2.1]登录流程如下:
  • [2.2]把用户名和密码保存起来 由于保存数据和读取数据业务逻辑是独立的所以单独写到一个工具类里
    public void ReadFile() {
        if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
            File sdcardDir = Environment.getExternalStorageDirectory();
            try {
                FileInputStream fis = new FileInputStream(sdcardDir.getCanonicalPath() + "/info.txt");
                BufferedReader br = new BufferedReader(new InputStreamReader(fis));
                StringBuilder sb = new StringBuilder();
                String line = null;
                while ((line = br.readLine()) != null) {
                    sb.append(line);
                }
                br.close();
                Log.e(TAG, "ReadFile: " + sb.toString());
                HashMap<String, String> map = new HashMap<>();
                final String[] split = sb.toString().split("##");
                int length = split.length;
                Log.e(TAG, "onCreate: " + split.length);
                map.put("name", split[0]);
                map.put("pwd", split[1]);
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        mEtName.setText(split[0]);
                        mEtPwd.setText(split[1]);
                        mCb.setChecked(true);
                    }
                });
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }

    public boolean writeFile(String name, String pwd) {
        String content = name + "##" + pwd;
        if (Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED)) {
            File sdcarDir = Environment.getExternalStorageDirectory();
            try {
                FileOutputStream fos = new FileOutputStream(sdcarDir.getCanonicalPath() + "/info.txt");
                OutputStreamWriter osw = new OutputStreamWriter(fos);
                BufferedWriter bw = new BufferedWriter(osw);
                bw.write(content); // content为你需要写入的字符串
                bw.close();
                return true;
/*
等价于
new BufferedWriter(
new OutputStreamWriter(
new FileOutputStream(sdcardDir.getCanonicalPath()+"wenjianming")))
.write("sfsd");
但不知道怎么close哈哈
*/
            } catch (IOException e) {
                e.printStackTrace();
                return false;
            }
        }
        return false;
    }
  • [2.3]当保存数据就调用save方法 当读取数据就调用readinfo方法

原文地址:https://www.cnblogs.com/nangongyibin/p/10199789.html

时间: 2024-10-09 23:37:47

登录案例的相关文章

struts登录案例和自定义拦截器

struts登录案例:struts.xml<struts> <constant name="struts.devMode" value="true" /> <constant name="struts.custom.i18n.resources" value="messages"></constant> <package name="basic" ext

JavaWeb-13 (用户的注册和登录案例)

JavaWeb-13:项目案例 用户注册和登录案例项目 一.用户注册和登录案例 1.技术架构:三层架构(表现层MVC:M:model V:View C:Controller) 2.要求:JSP中不能出现一行java脚本或java表达式.除了指令<%@%>,其余地方不能有<%%> 3.数据库:临时使用xml.解析使用Dom4j 4.必须知道要干什么? 5.开发步骤: a.建立工程,搭建开发环境(拷贝jar包.建立配置文件) dom4j.jar jaxen.jar commons-be

Android first---文件读取(登录案例编写为主)

以android登录案例来介绍文件的读取与androidAPI给予的方法 第一步:绘制界面 绘制方法:在线性布局下面设置相对布局 代码部分: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_pa

Android(java)学习笔记212:中文乱码的问题处理(qq登录案例)

1.我们在之前的笔记中LoginServlet.java中,我们Tomcat服务器回复给客户端的数据是英文的"Login Success","Login Failed". 现在我们改成如下的汉字: 1 package com.himi.web; 2 3 import java.io.IOException; 4 import javax.servlet.ServletException; 5 import javax.servlet.annotation.WebSe

Android(java)学习笔记213:开源框架post和get方式提交数据(qq登录案例)

1.前面提到Http的get/post方式  . HttpClient方式,实际工作的时候不常用到,因为这些方式编写代码是很麻烦的 2.Android应用会经常使用http协议进行传输,网上会有很完善开源框架,已经包装好了http的get/post,还有httpclient等等:这样我们开发周期也会缩短: 3.下面通过一个Android案例来进行,说明常用的Http框架:  在http://github.com/中搜索async http: 这里发现明显第1个android-async-http

request常用方法,登录案例

request常用api 1,请求行的api案例代码 @WebServlet(name = "HangServlet",urlPatterns = "/hangServlet") public class HangServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletExce

8.Android-简单的登录案例编写

本章来学习登录案例,由于还未学习自定义控件外观,所以ui界面先用最简单的,并保存登录账号密码到data/data/包名/files下 1.学习之前需要掌握的Context类(通过Context来往APK包所在目录下读写登录信息配置文件) Context:可以理解为对APK的工具管家,通过Context可以访问当前应用相关的全局信息(系统资源). 也可以发送广播.访问全局包信息.开启另外的activity. 1.1 如何获取Context 通过MainActivity.this获取 1.2 本章要

Session &amp; Cookie登录案例 January 27,2020

## 案例:验证码 1. 案例需求: 1. 访问带有验证码的登录页面login.jsp 2. 用户输入用户名,密码以及验证码. * 如果用户名和密码输入有误,跳转登录页面,提示:用户名或密码错误 * 如果验证码输入有误,跳转登录页面,提示:验证码错误 * 如果全部输入正确,则跳转到主页success.jsp,显示:用户名,欢迎您 2. 分析: package domain; /** * 用户 实体类 */ public class User { private int id; private S

django框架学习:二十四.django表单post登录案例

前言 上一篇学习了注册案例,今天学习一下post登录案例,注册是往数据库插入数据,登 录是从数据库里面查询数据. 注册页面 新建HTML文件,表单提交页面包含name,age,qq,psw,提交. 页面显示如下: 注册页面视图函数 通过表单提交的请求数据,先去数据库进行查询,如果有返回用户名已经存在,如果没有此用户名在数据库创建保存提交的数据,密码psw为了安全需要进行加密处理. 密码加密make_password from django.contrib.auth.hashers import