效果图:

MainActivity.java

package jk.quickpay.login;import jk.quickpay.login.FileService;
import java.util.Map;
import android.app.Activity;
import android.os.Bundle;
import android.text.TextUtils;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Toast;public class MainActivity extends Activity {public EditText edit_name, edit_pass;public Button btn_login;public CheckBox box_remeber;public FileService fileService;protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);fileService = new FileService(this);edit_name = (EditText) findViewById(R.id.edit_name);edit_pass = (EditText) findViewById(R.id.edit_pass);btn_login = (Button) findViewById(R.id.btn_login);box_remeber = (CheckBox) findViewById(R.id.cbx_remember);btn_login.setOnClickListener(new MyOnClickListener());Map<String, String> map = fileService.readFile("private.txt");if (map != null) {edit_name.setText(map.get("name"));edit_pass.setText(map.get("pass"));}}public boolean onCreateOptionsMenu(Menu menu) {getMenuInflater().inflate(R.menu.main, menu);return true;}class MyOnClickListener implements View.OnClickListener {public void onClick(View v) {int id = v.getId();switch (id) {case R.id.btn_login:String name = edit_name.getText().toString();String pass = edit_pass.getText().toString();if (TextUtils.isEmpty(name)) {Toast.makeText(MainActivity.this, "用户名不能为空",Toast.LENGTH_SHORT).show();return;} else if (TextUtils.isEmpty(pass)) {Toast.makeText(MainActivity.this, "密码不能为空",Toast.LENGTH_SHORT).show();return;} else {if (box_remeber.isChecked()) {MainActivity.this.fileService.saveToRom(name, pass,"private.txt");Toast.makeText(MainActivity.this, "用户名和密码已保存",Toast.LENGTH_SHORT).show();} else {Toast.makeText(MainActivity.this, "用户名和密码不需要保存",Toast.LENGTH_SHORT).show();}}break;default:break;}}}
}

FileService.java

package jk.quickpay.login;import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.util.HashMap;
import java.util.Map;import jk.quickpay.login.StreamTools;import android.content.Context;public class FileService {public Context context;public FileService(Context context) {this.context = context;}public boolean saveToRom(String name,String pass,String fileName){try{FileOutputStream fos=context.openFileOutput(fileName, Context.MODE_PRIVATE);String result=name+":"+pass;fos.write(result.getBytes());fos.flush();fos.close();}catch(Exception e){e.printStackTrace();return false;}return true;}public Map<String,String> readFile(String fileName){Map<String,String> map=null;try{FileInputStream fis=context.openFileInput(fileName);String value=StreamTools.getValue(fis);String values[]=value.split(":");if(values.length>0){map=new HashMap<String, String>();map.put("name", values[0]);map.put("pass", values[1]);}}catch(Exception e){e.printStackTrace();}return map;}}

StreamTools.java

package jk.quickpay.login;import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;public class StreamTools {public static String getValue(FileInputStream fis) throws Exception{ByteArrayOutputStream stream=new ByteArrayOutputStream();byte[] buffer=new byte[1024];int length=-1;while((length=fis.read(buffer))!=-1){stream.write(buffer,0,length);}stream.flush();stream.close();String value=stream.toString();return value;}
}

activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context=".LoginActivity" ><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content"android:layout_alignParentLeft="true"android:layout_alignParentTop="true"android:orientation="vertical" ><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content" ><TextViewandroid:id="@+id/view_account"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/account" /><EditTextandroid:id="@+id/edit_name"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:ems="10"android:inputType="textPersonName" ><requestFocus /></EditText></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content" ><TextViewandroid:id="@+id/view_pass"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/password" /><EditTextandroid:id="@+id/edit_pass"android:layout_width="0dp"android:layout_height="wrap_content"android:layout_weight="1"android:ems="10"android:inputType="textPassword" /></LinearLayout><LinearLayoutandroid:layout_width="match_parent"android:layout_height="wrap_content" android:orientation="horizontal"><Buttonandroid:id="@+id/btn_login"android:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_weight="0.1"android:text="@string/login" /><Buttonandroid:id="@+id/btn_reg"android:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_weight="0.1"android:text="@string/register" /><Buttonandroid:id="@+id/btn_out"android:layout_width="fill_parent"android:layout_height="wrap_content"android:layout_weight="0.1"android:text="@string/quit" /></LinearLayout><CheckBoxandroid:id="@+id/cbx_remember"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_marginLeft="80dp"android:text="@string/text_rember" /></LinearLayout></LinearLayout>

Android入门之login设计相关推荐

  1. Android基础-系统架构分析,环境搭建,下载Android Studio,AndroidDevTools,Git使用教程,Github入门,界面设计介绍

    系统架构分析 Android体系结构 安卓结构有四大层,五个部分,Android分四层为: 应用层(Applications),应用框架层(Application Framework),系统运行层(L ...

  2. Android入门教程:ConstraintLayout约束布局

    原文首发自掘金芦苇APP团队,转载到自己小号上再发一遍~ 翻译By Leelion6.关于 ConstraintLayout 的文章其实已经不少了,不过看到这篇文章写的很有趣,以及在翻译的过程中,感受 ...

  3. Android之登录界面设计

    Android之登录界面设计 这篇文章主要讲述Android开发中常用的APP开发界面–登录界面的开发(由于博主是初学安卓,可能有些小伙伴会感到简陋,我会继续努力学习新知识的,大家一起加油). (1) ...

  4. 【Android开发】Android入门安装与使用教程——以Android Studio3.6.1为例

    [Android开发]Android入门教程--以Android Studio3.6.1为例 1.为什么要学习Android 2.学习资源 3.安装Android Studio 3.1 下载安装包 3 ...

  5. Android 视图系统的设计与实现 | 通俗易懂

    Bezier | 作者 承香墨影 | 编辑 https://juejin.cn/post/6865625913309511687 | 原文 郭霖(ID:guolin_blog) | 转自 前言 Hi, ...

  6. Android视图系统的设计与实现

    前言 说到Android视图大家第一反应肯定是Activity以及View,毕竟这是我们从入门开始接触最多的两个组件.但提到Activity和View之间联系以及设计背景可能会难道一大片人.其实关于视 ...

  7. 学了又忘?通俗易懂 Android视图系统的设计与实现!

    前言 说到Android视图大家第一反应肯定是Activity以及View,毕竟这是我们从入门开始接触最多的两个组件.但提到Activity和View之间联系以及设计背景可能会难道一大片人.其实关于视 ...

  8. 通俗易懂,Android视图系统的设计与实现

    前言 说到Android视图大家第一反应肯定是Activity以及View,毕竟这是我们从入门开始接触最多的两个组件.但提到Activity和View之间联系以及设计背景可能会难道一大片人.其实关于视 ...

  9. 一篇很好的关于Android的本科毕业论文《基于android手机通讯录的设计与实现毕业论文》转自百度

    本文转自: http://wenku.baidu.com/view/bb7dad58804d2b160b4ec058.html 相应的word文档csdn下载地址: http://download.c ...

  10. Android APP登录界面设计

    为平板设计的登录界面,可以实现的功能有登录,忘记密码,记住密码,用户注册.(只设计界面,为了练习界面布局) 其中包括了EditText.TextView.CheckBox.Button控件. < ...

最新文章

  1. PyQt5 技术篇-设置QTableWidget表格组件默认值实例演示,如何获取QTableWidget表格组件里的值,获取表格的行数和列数
  2. 成为Java流大师–第6部分:使用流创建新的数据库应用程序
  3. java 以太坊 智能合约_web3j教程:java使用web3j开发以太坊智能合约交易
  4. php在线预览文档,php如何实现文档在线预览
  5. 文件上传input简便美化方案
  6. 华为否认启动“塔山计划”;中金:苹果中国区下架微信概率较小;Linux Lab发布v0.5 rc3| 极客头条...
  7. java实现 mysql 身份认证,java-从Filter中的数据库对用户进行身份验证是一种好习惯吗?...
  8. Swift编程必备的iOS库 Pod
  9. 手机12306买卧铺下铺技巧_手机12306怎么买下铺(微信买火车票指定下铺)
  10. 安装Windowsxp虚拟机
  11. 纪念我的第一次面试——华为研发类面试
  12. 超详细—狂神Mybatis笔记
  13. 一文详尽混淆矩阵、准确率、精确率、召回率、F1值、P-R 曲线、ROC 曲线、AUC 值、Micro-F1 和 Macro-F1
  14. [转载]关于如何选择5D2和6D的忠告_我是亲民_新浪博客
  15. 爱江山更爱美人服务器维修怎么,爱江山更爱美人落星院详细玩法攻略
  16. Linux 服务器上传下载文件到阿里网盘
  17. Android Preference详解
  18. Python多态与鸭子类型
  19. IDEA导入UAPStudio(Eclipse)创建的项目
  20. 老铁,这年头不会点git真不行

热门文章

  1. 过滤器如何配置(javax.servlet.Filter)?
  2. CSS——简写属性(在padding和margin这样的简写属性中,值赋值的顺序是top、right、bottom、left)...
  3. sublime 自定义快捷生成代码块
  4. C++知识点(三)函数
  5. JAVA的DES加密解密在windows上测试一切正常,在linux上异常
  6. 链接数据库超级简单的工具类C3P0谁用谁知道
  7. Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition(SPP-net)
  8. 【HTML5+MVC4】xhEditor网页编辑器图片上传
  9. jmeter 压测之动态数据关联
  10. FineUI分组显示弹框最新的在最上边