保存文件到手机内存
2017-07-31 19:58
246 查看
MainActivity.java
package com.example; import java.util.Map; import com.example.service.loginService; import android.support.v7.app.ActionBarActivity; import android.text.TextUtils; import android.util.Log; import android.os.Bundle; import android.view.View; import android.widget.CheckBox; import android.widget.EditText; import android.widget.Toast; public class MainActivity extends ActionBarActivity { private static final String TAG = "MainActivity"; //日志 一般是类名"MainActivity" private EditText et_username; private EditText et_password; private CheckBox cb; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); et_username = (EditText)this.findViewById(R.id.et_username); et_password = (EditText)this.findViewById(R.id.et_password); cb = (CheckBox) findViewById(R.id.cb_remember_pwd); //检查是否有保存的账号及密码 若有回显 Map<String,String> map = loginService.getSavedUserInfo(this); if(map!=null){ et_password.setText(map.get("password")); et_username.setText(map.get("username")); } } public void login(View view){ String username = et_username.getText().toString().trim(); String password = et_password.getText().toString().trim(); if(TextUtils.isEmpty(username)||TextUtils.isEmpty(password)){ Toast.makeText(this, "用户名或密码不能为空", 1).show(); }else{ //判断是否保存密码 if(cb.isChecked()){ //如果勾选记住密码 Log.i(TAG, "需要保存用户名密码"); //日志 boolean result = loginService.saveUserInfo(this,username, password); if(result){ Toast.makeText(this, "保存用户信息成功", 0).show(); } } //登录 发送消息到服务器,服务器验证是否成功 if("1477996221".equals(username)&&"666666".equals(password)){ Toast.makeText(this, "登陆成功", 1).show(); } else{ Toast.makeText(this, "登录失败,账号或密码错误",1).show(); } } } }
/res/layout/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:orientation="vertical" tools:context="com.example.MainActivity" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="账号" /> <EditText android:id="@+id/et_username" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="密码" /> <EditText android:inputType="textPassword" //密码格式 android:id="@+id/et_password" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <RelativeLayout //线性布局中使用相对布局 android:layout_width="wrap_content" android:layout_height="wrap_content"> <CheckBox android:id="@+id/cb_remember_pwd" android:checked="true" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="记住密码" /> <Button android:onClick="login" android:layout_alignParentRight="true" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="登录" /> </RelativeLayout> </LinearLayout>
loginSrvice.java 右击 原有包 新建一个package(com.example.service)
右击 新建包 新建一个class(loginSrvice)
package com.example.service; //新建包名 import java.io.BufferedReader; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.InputStreamReader; import java.net.ContentHandler; import java.text.BreakIterator; import java.util.HashMap; import java.util.Map; import org.apache.http.entity.InputStreamEntity; import android.content.Context; public class loginService { /* ***保存账号密码的业 af6a 务方法*** * content 上下文 * username 账号 * password 密码 */ public static boolean saveUserInfo(Context context, String username, String password){ try { File file = new File(context.getFilesDir(),"Info.txt"); //context.getFilesDir()帮助我们返回一个目录 /date/date/包名/files "Info.txt"文件名 FileOutputStream fos = new FileOutputStream(file);// 创建输出流对象 fos.write((username+"##"+password).getBytes());// 向文件中写入信息 fos.close(); //关闭输出流对象 return true; //true保存成功 } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); return false;//false 保存失败 } } /* * 获取保存的数据 */ public static Map<String, String> getSavedUserInfo(Context context){ File file = new File(context.getFilesDir(),"Info.txt"); try{ FileInputStream fis = new FileInputStream(file); BufferedReader br = new BufferedReader(new InputStreamReader(fis)); String str = br.readLine();//从这个缓存中读取一行的内容 String[] infos = str.split("##");//split() 方法用于把一个字符串分割成字符串数组。 Map<String, String> map = new HashMap<String, String>();// Map是个接口, HashMap是它的实现类。 这就是new 了一个对象 map.put("username", infos[0]); map.put("password", infos[1]); return map; }catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); return null; } } }
介绍一下xml的inputtype的值。
Android:inputType=”none”
android:inputType=”text”
android:inputType=”textCapCharacters” 字母大写
android:inputType=”textCapWords” 首字母大写
android:inputType=”textCapSentences” 仅第一个字母大写
android:inputType=”textAutoCorrect” 自动完成
android:inputType=”textAutoComplete” 自动完成
android:inputType=”textMultiLine” 多行输入
android:inputType=”textImeMultiLine” 输入法多行(如果支持)
android:inputType=”textNoSuggestions” 不提示
android:inputType=”textUri” 网址
android:inputType=”textEmailAddress” 电子邮件地址
android:inputType=”textEmailSubject” 邮件主题
android:inputType=”textShortMessage” 短讯
android:inputType=”textLongMessage” 长信息
android:inputType=”textPersonName” 人名
android:inputType=”textPostalAddress” 地址
android:inputType=”textPassword” 密码
android:inputType=”textVisiblePassword” 可见密码
android:inputType=”textWebEditText” 作为网页表单的文本
android:inputType=”textFilter” 文本筛选过滤
android:inputType=”textPhonetic” 拼音输入
android:password=”true” 设置只能输入密码
android:textColor = “#ff8c00” 字体颜色
android:textSize=”20dip” 大小
android:capitalize = “characters” 以大写字母写
android:textAlign=”center” EditText没有这个属性,但TextView有 android:textColorHighlight=”#cccccc” 被选中文字的底色,默认为蓝色
android:textColorHint=”#ffff00” 设置提示信息文字的颜色,默认为灰色
android:textScaleX=”1.5” 控制字与字之间的间距
android:typeface=”monospace” 字型,normal, sans, serif, monospace
android:background=”@null” 空间背景,这里没有,指透明
android:layout_weight=”1” 权重,控制控件之间的地位,在控制控件显示的大小时蛮有用的。
通过EditText的layout xml文件中的相关属性来实现:
1. 密码框属性 android:password=”true” 这条可以让EditText显示的内容自动为星号,输入时内容会在1秒内变成*字样。
2. 纯数字 android:numeric=”true” 这条可以让输入法自动变为数字输入键盘,同时仅允许0-9的数字输入
3. 仅允许 android:capitalize=”cwj1987” 这样仅允许接受输入cwj1987,一般用于密码验证 下面是一些扩展的风格属性
android:editable=”false” 设置EditText不可编辑
android:singleLine=”true” 强制输入的内容在单行
android:ellipsize=”end” 自动隐藏尾部溢出数据,一般用于文字内容过长一行无法全部显示时
相关文章推荐
- 无废话Android之android下junit测试框架配置、保存文件到手机内存、android下文件访问的权限、保存文件到SD卡、获取SD卡大小、使用SharedPreferences进行数据存储、使用Pull解析器操作XML文件、android下操作sqlite数据库和事务(2)
- 13Saving Files(保存文件到手机内存和外存储设备上)
- android,保存文件到手机内存和读取
- 保存文件到手机内存与使用密码登陆
- Android 漫游之路------将文件保存到内存、SD以及获取手机内部存储与外部存储空间的大小
- 保存文件到手机内存
- android保存文件到手机内存
- android保存文件到手机内存
- 将文件保存到内存、SD以及获取手机内部存储与外部存储空间的大小
- Android学习系列(二): 保存文件到手机内存-模拟用户登录保存用户信息
- (九)android 中数据存储与访问——保存文件到手机内存
- [android] 保存文件到手机内存
- 5 保存文件到手机内存
- 24、25_保存文件到手机内存
- android开发学习(二)——保存文件到手机内存和SD卡,文件访问权限,获取内存大小
- android 中在内存中保存文件
- 使用GDAL的MEM内存文件保存临时文件
- 案例:把用户的用户名和密码保存到手机内存中.
- Android中照相,从相册选取照片,压缩,保存到手机内存,展示到界面,点击放大,上传。(含demo)
- Android文件存储_A_文本文件_文件保存在内存中