android:inputType="textPassword"
android一共提供了四种数据存储方式。
1、File:即常说的文件存储方式,常用于存储大数量的数据,缺点是更新数据比较困难。
写:
File file=new File(context.getFilesDir(), "info.txt");
FileOutputStream fos=new FileOutputStream(file);
//zhangsan##123
fos.write((username+"##"+password).getBytes());
fos.close();
a、File file=new File("info.dat")Android中默认路径是当前应用程序的路径下,即data/\app下,而此路径不允许创建文件,所以这句话不会生成文件。android提供了一个路径,在data\data\包名\下,可以将文件创建在该路径下。但是如果更改了包名,则又会出现创建路径失败,因为不允许一个程序在另一个程序的路径下创建文件。为此,android提供了一个Context类,可通过该类的getFilesDir()获得路径:data\data\包名\files\。
如果需要临时保存程序的中间数据,则可存放在应用程序的cache(缓存)文件夹下。此缓存可通过手机的清除缓存删除掉。获取缓存的方法为:Context.getCacheDir()。
b、手机内部存储空间理解成一块微硬盘。外部存储空间:sd卡。4.0以前的版本读sd卡不需要权限,写需要,4.0以后增加了“设置-开发者选项 -对SD卡进行读写保护”。获取sd卡的路径:Environment.getExternalStorageDirectory()。判断sd卡是否可用:if(Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState()))。
2、SharedPreferences:除SQLite数据库外,另一种常用的数据存储方式,其本质是基于xml文件存储key-value键值对数据,常用于存储简单的参数设置。文件存放在data\data\包名\shared_prefs目录下。SharedPreferences对象本身只能获取数据而不支持存储和修改,存储修改通过Edit类实现。步骤:1)根据Context获取SharedPreferences对象。2)利用edit()方法获取Edit对象。3)通过Editor对象存储key-value键值对数据。4)通过commit()提交数据。
3、Android中,你为某个程序创建的数据库,只有它可以访问,其他程序是不能访问的。数据库位于/data/data/databases文件夹中。
SQLiteOpenHelper:抽象类,管理数据库的版本和创建。所以必须自己继承它先。
构造函数:四个参数分别是:context、数据库名字、一个可选的游标工厂(通常是null),一个代表你正在使用的数据库模型版本的整数。
onCreate():数据库第一次被创建的时候执行。
onUpgrade():数据库版本变化时执行。
getReadableDatabase()和getWriteableDatabase():创建或者打开数据库。
SQLiteDataBase:封装了一些操作数据库的API。
beginTransaction():开始数据库的事务。
setTransactionSuccessful():标记数据库事务执行成功。每次执行完事务的语句时,必须执行此方法。它用来标数据库记事务执行完成,若不执行此方法,则认定数据库事务失败。
endTransaction():结束数据库的事务。
SQLite:Android平台上集成的一个嵌入式关系型数据库。支持的数据类型:NULL、INTEGER、REAL(浮点数)、TEXT(字符串文本)、BLOB(二进制类型)。虽然只有5种数据类型,但实际上sqlite3也接受varchar(n)、char(n)、decimal()等数据类型,只不过在运算或保存时会转换成对应的五种数据类型。SQLite最大的特点是你可以把各种类型的数据保存到任何字段中,而不用关心字段声明的数据类型是什么。但有一种类外:定义为INTEGER PRIMARY KEY的字段只能存储64位整数,向这种字段保存整数以外的数据会报错。
系统API优点:不用关心数据类型。
数据库事务: