android 简单文件操作
1.布局
- <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:orientation="vertical"
- 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="com.example.logindemo.MainActivity" >
- <TextView
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="请输入用户名" />
- <EditText
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:id="@+id/et_username"
- />
- <TextView
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:text="请输入密码" />
- <EditText
- android:inputType="textPassword"
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- android:id="@+id/et_password"
- />
- <RelativeLayout
- android:layout_width="fill_parent"
- android:layout_height="wrap_content"
- >
- <CheckBox
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:id="@+id/cb_remember"
- android:text="记住密码"
- android:checked="true"
- />
- <Button
- android:onClick="login"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:layout_alignParentRight="true"
- android:text="登录"
- android:id="@+id/btn_login" />
- </RelativeLayout>
- </LinearLayout>
2.MainActivity.java
- package com.example.logindemo;
- import java.util.Map;
- import android.os.Bundle;
- import android.support.v7.app.ActionBarActivity;
- import android.text.TextUtils;
- import android.view.Menu;
- import android.view.MenuItem;
- import android.view.View;
- import android.widget.CheckBox;
- import android.widget.EditText;
- import android.widget.Toast;
- import com.example.logindemo.service.LoginService;
- public class MainActivity extends ActionBarActivity {
- private EditText et_username;
- private EditText et_pwd;
- private CheckBox cb_remember;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- et_username = (EditText)this.findViewById(R.id.et_username);
- et_pwd = (EditText)this.findViewById(R.id.et_password);
- cb_remember = (CheckBox)this.findViewById(R.id.cb_remember);
- Map<String,String> map = LoginService.getUserInfo(this);
- if(map!=null)
- {
- et_username.setText(map.get("username"));
- et_pwd.setText(map.get("password"));
- }
- }
- public void login(View v){
- String username = et_username.getText().toString();
- String pwd = et_pwd.getText().toString();
- if(TextUtils.isEmpty(username) || TextUtils.isEmpty(pwd)){
- Toast.makeText(MainActivity.this, "username or password is empty", Toast.LENGTH_SHORT).show();
- return;
- }
- else
- {
- if(cb_remember.isChecked())
- {
- boolean result = LoginService.saveUserInfo(this, username, pwd);
- if(result)
- {
- Toast.makeText(MainActivity.this, "save user info success", Toast.LENGTH_SHORT).show();
- }
- }
- if("test".equals(username) && "123".equals(pwd))
- {
- Toast.makeText(MainActivity.this, "login success", Toast.LENGTH_SHORT).show();
- }
- else
- {
- Toast.makeText(MainActivity.this, "username or password is error", Toast.LENGTH_SHORT).show();
- }
- }
- }
- }
3.service
- package com.example.logindemo.service;
- import java.io.BufferedReader;
- import java.io.File;
- import java.io.FileInputStream;
- import java.io.FileOutputStream;
- import java.io.InputStreamReader;
- import java.util.HashMap;
- import java.util.Map;
- import android.content.Context;
- public class LoginService {
- public static boolean saveUserInfo(Context context,String username,String pwd)
- {
- try
- {
- File file = new File(context.getFilesDir(),"info.txt");
- FileOutputStream fos = new FileOutputStream(file);
- fos.write((username+"##"+pwd).getBytes());
- fos.close();
- return true;
- }
- catch(Exception e)
- {
- e.printStackTrace();
- return false;
- }
- }
- public static Map<String,String> getUserInfo(Context context)
- {
- try
- {
- File file = new File(context.getFilesDir(),"info.txt");
- FileInputStream fis = new FileInputStream(file);
- BufferedReader br = new BufferedReader(new InputStreamReader(fis));
- String strs = br.readLine();
- String arr[] = strs.split("##");
- Map<String,String> map = new HashMap<String,String>();
- map.put("username", arr[0]);
- map.put("password", arr[1]);
- return map;
- }
- catch(Exception e)
- {
- e.printStackTrace();
- return null;
- }
- }
- }
android 简单文件操作的更多相关文章
- Android简单文件浏览器源代码 (转)
Android简单文件浏览器源代码 (转) activity_main .xml <LinearLayout xmlns:android="http://schemas.android ...
- android的文件操作
http://blog.csdn.net/fenghome/article/details/5668598 android的文件操作要有权限: <uses-permission android: ...
- android通用文件操作
最经用到android的SCCard的文件操作,因此稍作了整理,将它写成一个简单的工具类.其中,可以判断SDCard的是否可用,可用存储空间,文件的创建以及写入数据.经过测试,可以正常使用.代码如下: ...
- Android FileUtils 文件操作类
系统路径 Context.getPackageName(); // 用于获取APP的所在包目录 Context.getPackageCodePath(); //来获得当前应用程序对应的apk文件的路径 ...
- 也发一个自己实现的android简单文件选择器代码。支持多卡,排序
一个很简单的文件选择器对话框,支持双sd卡,当然前提是要有sd卡..并且实现了排序效果. 只有100多行的代码,基本的思路就是用listview显示目录下的所有子文件,再判断是文件还是目录. 利用Co ...
- python简单文件操作
写软件著作申请,需要将所有源代码代码贴入一个word中,在源代码前后要添加一些标记,如下: //////////////////////////// //filename1 ///////////// ...
- Android 图片文件操作、屏幕相关、.9图片的理解
一:Android图片操作 1.存储bitmap到本地文件系统 public static void bitmapToFile(Bitmap bitmap, String uri) { if(!ex ...
- android中文件操作的四种枚举
1.MODE_PRIVATE:默认操作模式,代表该文件是私有数据,只能被应用自身访问,在该模式下,写入的的内容会覆盖原文件中的内容. 2.MODE_APPEND:该模式会检查文件是否存在,存在就往文件 ...
- Android写入文件操作权限
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses- ...
随机推荐
- 关于python 自带csv库的使用心得 附带操作实例以及excel下乱码的解决
因为上次帮我们产品处理过一个文件,他想生成能excel处理操作的.但是上次由于时间非常紧张,所以并没有处理好. 正好无聊就来好好研究一下 ,找算法要了几个 csv文件.来好好玩一玩. 全篇使用了pyt ...
- 用Delphi制作动态菜单 该文章《用Delphi制作动态菜单》
---恢复内容开始--- 1.首先,确定动态菜单的数据来源,即要确定动态菜单标题是来自Windows的系统注册表,还是来自一个数据库,或者是来自一个子目录,主要由程序的功能而定.这里假设主窗口名为Ma ...
- BZOJ2006[NOI2010]超级钢琴——堆+主席树
题目描述 小Z是一个小有名气的钢琴家,最近C博士送给了小Z一架超级钢琴,小Z希望能够用这架钢琴创作出世界上最美妙的 音乐. 这架超级钢琴可以弹奏出n个音符,编号为1至n.第i个音符的美妙度为Ai,其中 ...
- BZOJ1895Pku3580 supermemo——非旋转treap
题目描述 给出一个初始序列fA1;A2;:::Ang,要求你编写程序支持如下操作: 1. ADDxyD:给子序列fAx:::Ayg的每个元素都加上D.例如对f1,2, 3,4,5g执行"AD ...
- BZOJ4034[HAOI2015]树上操作——树链剖分+线段树
题目描述 有一棵点数为 N 的树,以点 1 为根,且树点有边权.然后有 M 个 操作,分为三种: 操作 1 :把某个节点 x 的点权增加 a . 操作 2 :把某个节点 x 为根的子树中所有点的点权都 ...
- Aladdin and the Flying Carpet LightOJ - 1341 (素数打表 + 算术基本定理)
题意: 就是求a的因数中大于b的有几对 解析: 先把素数打表 运用算术基本定理 求出a的所有因数的个数 然后减去小于b的因数的个数 代码如下: #include <iostream> #i ...
- Codeforces Round #337 (Div. 2) B. Vika and Squares
B. Vika and Squares time limit per test 2 seconds memory limit per test 256 megabytes input standard ...
- Codeforces Round #418 (Div. 2) B. An express train to reveries
time limit per test 1 second memory limit per test 256 megabytes input standard input output standar ...
- 【BZOJ2425】[HAOI2010]计数(组合数学)
[BZOJ2425][HAOI2010]计数(组合数学) 题面 BZOJ 洛谷 题解 很容易的一道题目. 统计一下每个数位出现的次数,然后从前往后依次枚举每一位,表示前面都已经卡在了范围内,从这一位开 ...
- 【转】cJSON 源码分析
cJSON源码分析 简介 由于C语言汇总,没有直接的字典,字符串数组等数据结构,所以要借助结构体定义,处理json. JSON是一种轻量级的数据交换格式.JSON采用完全独立与语言的文本格式,易于人阅 ...