感觉现在开始码笔记都是晚上了,练车真是一个耗时的项目。
文本存储 这方面就是JAVA,没什么好讲的,直接上代码。
save()方法 public void save (String inputText) {
FileOutputStream out = null ;
BufferedWriter writer = null ;
try {
out = openFileOutput("data" , Context.MODE_PRIVATE);
writer = new BufferedWriter(new OutputStreamWriter(out));
writer.write(inputText);
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (writer != null ) {
writer.close();
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
load()方法 public String load () {
FileInputStream in = null ;
BufferedReader reader = null ;
StringBuilder content = new StringBuilder();
try {
in = openFileInput("data" );
reader = new BufferedReader(new InputStreamReader(in));
String line = "" ;
while ((line = reader.readLine()) != null ) {
content.append(line);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
if (reader != null ) {
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
return content.toString();
}
修改onCreate()方法 APP启动时检测文本文件,如果不为空则读取内容,并且将光标移至文本末尾protected void onCreate (Bundle savedInstanceState) {
super .onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
edit = (EditText) findViewById(R.id.edit);
String inputText = load();
if (!TextUtils.isEmpty(inputText)) {
edit.setText(inputText);
edit.setSelection(inputText.length());
Toast.makeText(this , "Restoring succeeded" , Toast.LENGTH_SHORT).show();
}
}
onDestroy()方法 在APP关闭时执行save方法保存protected void onDestroy () {
super .onDestroy();
String inputText = edit.getText().toString();
save(inputText);
}
我真是越来越懒了 逃记得新建一个EditText控件,巴拉巴拉~
SharedPreferences存储 第一次知道还有这种存储方式的,真是孤陋寡闻了,快点码完我去看诛仙了TAT
存储 SharedPreferences.Editor editor = getSharedPreferences("data" , MODE_PRIVATE).edit();
editor.putString("name" , "Tom" );
editor.putInt("age" , 28 );
editor.putBoolean("married" , false );
editor.commit();
会在/data/data/<包名>/shared_prefs中新建一个data.xml的文件,里面的内容是这样的<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map >
<string name ="name" > Tom</string >
<int name ="age" value ="28" />
<boolean name ="married" value ="false" />
</map >
读取 SharedPreferences pref = getSharedPreferences("data" , MODE_PRIVATE);
String name = pref.getString("name" , "" );
int age = pref.getInt("age" , 0 );
boolean married = pref.getBoolean("married" , false );
Log.d("MainActivity" , "name is " + name);
Log.d("MainActivity" , "age is " + age);
Log.d("MainActivity" , "married is " + married);
简洁明白,嗯我先去看诛仙,回来再来码,就这么决定了
SQLite数据库存储 心情不好,继续码笔记
新建数据库 新建一个继承SQLiteOpenHelper的MyDatabaseHelper类public class MyDatabaseHelper extends SQLiteOpenHelper {
public static final String CREATE_BOOK = "create table Book ("
+ "id integer primary key autoincrement, "
+ "author text, "
+ "price real, "
+ "pages integer, "
+ "name text)" ;
public static final String CREATE_CATEGORY = "create table Category ("
+ "id integer primary key autoincrement, "
+ "category_name text, "
+ "category_code integer)" ;
private Context mContext;
public MyDatabaseHelper (Context context, String name,
CursorFactory factory, int version) {
super (context, name, factory, version);
mContext = context;
}
@Override
public void onCreate (SQLiteDatabase db) {
db.execSQL(CREATE_BOOK);
db.execSQL(CREATE_CATEGORY);
Toast.makeText(mContext, "Create succeeded" , Toast.LENGTH_SHORT).show();
}
@Override
public void onUpgrade (SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL("drop table if exists Book" );
db.execSQL("drop table if exists Category" );
onCreate(db);
}
}
在MainActivity中加入以下代码dbHelper = new MyDatabaseHelper(this , "BookStore.db" , null , 1 );
dbHelper.getWritableDatabase();
插入数据 SQLiteDatabase db = dbHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("name" , "The Da Vinci Code" );
values.put("author" , "Dan Brown" );
values.put("pages" , 454 );
values.put("price" , 16.96 );
db.insert("Book" , null , values);
values.clear();
values.put("name" , "The Lost Symbol" );
values.put("author" , "Dan Brown" );
values.put("pages" , 510 );
values.put("price" , 19.95 );
db.insert("Book" , null , values);
修改数据 SQLiteDatabase db = dbHelper.getWritableDatabase();
ContentValues values = new ContentValues();
values.put("price" , 10.99 );
db.update("Book" , values, "name = ?" ,
new String[] { "The Da Vinci Code" });
删除数据 SQLiteDatabase db = dbHelper.getWritableDatabase();
db.delete("Book" , "pages > ?" , new String[] { "500" });
查询数据 SQLiteDatabase db = dbHelper.getWritableDatabase();
Cursor cursor = db.query("Book" , null , null , null , null , null ,
null );
if (cursor.moveToFirst()) {
do {
String name = cursor.getString(cursor
.getColumnIndex("name" ));
String author = cursor.getString(cursor
.getColumnIndex("author" ));
int pages = cursor.getInt(cursor
.getColumnIndex("pages" ));
double price = cursor.getDouble(cursor
.getColumnIndex("price" ));
Log.d("MainActivity" , "book name is " + name);
Log.d("MainActivity" , "book author is " + author);
Log.d("MainActivity" , "book pages is " + pages);
Log.d("MainActivity" , "book price is " + price);
} while (cursor.moveToNext());
}
cursor.close();
直接使用SQL操作数据库 我觉得这种方法简单多了,放几个实例部分代码 创建表db.execSQL("DROP TABLE IF EXISTS students" );
da.execSQL("CREATE TABLE IF NOT EXISTS student (_id INTEGER PRIMARY KEY AUTOINCREMENT, Name text,Number INTEGER, Chinese INTEGER,Math INTEGER, English integer)" );
依据Select编辑框里面内容删除数据da.execSQL("DELETE FROM student WHERE Name=?" ,new String[]{Select.getText().toString()});
示例 数据库示例,大一做的,学生成绩管理系统