1,采用Shared Preferences:

一句话实现保存Android应用程序配置信息:

保存:getPreferences(Activity.MODE_PRIVATE).edit().putString(strKey,strValue).commit();

读取:strValue=getPreferences(Activity.MODE_PRIVATE).getString(strKey,strDefault);

注:应用内不同Activity之间的配置数据共享使用getSharedPreferences()。

2,采用File:

Files 数据存储主要是使用 Properties 并配合 FileInputStream或者FileOutputStream对文件写入操作。

保存:

FileOutputStream stream=this.openFileOutput(FileName, Context.MODE_PRIVATE);
new Properties().put(strKey,strValue).store(stream, "");

读取:

FileInputStream stream =this.openFileInput(FileName);  
 strValue=String.valueOf(new Properties().load(stream).getProperty(strKey));

注:采用 Properties的setProperty()方法,可以将键值对打包,最后调用storeXXX方法写入文件。

3,采用网络空间:(略)

4,采用SQLite数据库:

A,SQLite预备知识:

默认数据库路径:data/data/myPackage/databases/

打开数据库:sqlite3 dbName

操作:.help 帮助;.table 查看所有表

每一句Sql语句结束都需要分号;

B,JDBC驱动程序:

Class.forName("org.sqlite.JDBC"); 
	Connection conn = DriverManager.getConnection("jdbc:sqlite:filename"); //filename为你的SQLite数据名称

C,使用SQLiteOpenHelper操作数据库:

获得数据库实例:

getReadableDatabase()获得可读的SQLiteDatabase 
	getWritableDatabase() 获得可写的SQLiteDatabase

SQLiteOpenHelper子类中需要重写的常用事件:

onCreate(SQLiteDatabase) 
	onDowngrade(SQLiteDatabase db, int oldVersion, int newVersion) 
	onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion)

封装的DBHelp类,实现对数据库的操作:

public class DBHelp extends SQLiteOpenHelper { 
	public DBHelp(Context context, String name, CursorFactory factory, 
int version) { 
super(context, name, factory, version);         
} 
@Override 
public void onCreate(SQLiteDatabase db) { 
db.execSQL(createTableSQL); // 执行SQL 需要使用execSQL() 
} 
@Override 
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
} 
@Override 
public void onOpen(SQLiteDatabase db) { 
} 
	InsertData() 
	UpdateData()  
	DeleteData()  
	rawQuery() 
	query()  
}

创建并打开数据库:

SQLiteDatabase db = new DBHelp(SQLiteActivity.this).getReadableDatabase();

添加数据:

DBHelp dbHelp = new DBHelp(SQLiteActivity.this); 
	SQLiteDatabase db = dbHelp.getWritableDatabase(); 
	ContentValues contentValues = new ContentValues(); 
	contentValues.put("sName", txtName.getText().toString()); 
	contentValues.put("sSex", "男"); 
	dbHelp.InsertData(db, contentValues);

修改数据:

DBHelp dbHelp = new DBHelp(SQLiteActivity.this); 
	SQLiteDatabase db = dbHelp.getWritableDatabase(); 
	ContentValues contentValues = new ContentValues(); 
	contentValues.put("sName", txtsName.getText().toString()); 
	String whereClause = "sid=?"; //要修改数据的条件 值用?占位符 
	String[] whereArgs = new String[]{txtsID.getText().toString()}; 
	dbHelp.UpdateData(db, contentValues, whereClause, whereArgs);

删除数据:

DBHelp dbHelp = new DBHelp(SQLiteActivity.this); 
	SQLiteDatabase db = dbHelp.getWritableDatabase(); 
	String whereClause = "sid=?"; //要删除数据的条件 值用?占位符 
	String[] whereArgs = new String[]{txtID.getText().toString()}; 
	dbHelp.DeleteData(db, whereClause, whereArgs);

查询数据:

Cursor cur =db.rawQuery(“SELECT * FROM Student WHERE sid=1 AND sname=‘zhangsan'", null); 
	Cursor cur =db.rawQuery(...)

每一个rawQuery()或query()都会返回一个SQLite数据库Cursor。

操作游标:

通过使用 getCount() 方法得到结果集中有多少记录;

通过 moveToFirst(), moveToNext(), 和 isAfterLast() 方法遍历所有记录;

通过 getColumnNames() 得到字段名;

通过 getColumnIndex() 转换成字段号;

通过 getString(),getInt() 等方法得到给定字段当前记录的值;

通过 requery() 方法重新执行查询得到游标;

通过 close() 方法释放游标资源;

SimpleCursorAdapter:和游标关联,绑定到ListView以呈现数据,前提条件,表中有_id列,并且是主键。

SimpleCursorAdapter simple = new SimpleCursorAdapter(SQLiteActivity.this, android.R.layout.simple_list_item_1, cur, new String[]{"sName","sSex"}, new int[]{android.R.id.text1,android.R.id.text2}); 
	studentList.setAdapter(simple);

_id不是主键时,先从游标是把数据取出来,然后采用SimpleAdapter来呈现数据:

ArrayList<HashMap<String, Object>> students = new ArrayList<HashMap<String,Object>>(); 
	HashMap<String, Object> hs ; 
	for (cur.moveToFirst();!cur.isAfterLast();cur.moveToNext()) { 
hs = new HashMap<String, Object>(); 
hs.put("sID", cur.getInt(cur.getColumnIndex("sid"))); 
hs.put("sName", cur.getString(cur.getColumnIndex("sName"))); 
hs.put("sSex", cur.getString(cur.getColumnIndex("sSex"))); 
students.add(hs); 
	} 
	SimpleAdapter sim = new SimpleAdapter(SQLiteActivity.this, students, android.R.layout.simple_list_item_1, new String[]{"sName","sSex"}, new int[]{android.R.id.text1,android.R.id.text2}); 
	studentList.setAdapter(sim);

 

 《完》