標籤:android style blog color java os io 資料
學android已經有大概一周時間了吧 ,總感覺自己基礎不怎麼好,只能通過一點一點積累著敲來鞏固平常的知識,有的時候就先不封裝的敲一遍,再封裝上,有些語句真的記不住,雖然知道他是什麼意思,於是乎就反覆的敲著,加油吧!少年,下面進入正題吧
DBConn.java類 主要是將raw寫入到DDMS裡的data/data/xxx包/下,代碼如下:
package com.tp.soft.util;import java.io.File;import java.io.FileOutputStream;import java.io.InputStream;import com.example.dbcity.R;import android.content.Context;import android.database.sqlite.SQLiteDatabase;import android.os.Environment;public class DBConn { private static String DB_NAME = "test.db"; private static String PACKAGE = "com.example.dbcity"; private static String PATH = "/data" + Environment.getDataDirectory().getPath()+ File.separator + PACKAGE; private Context context; private SQLiteDatabase database; public DBConn(Context context){ this.context = context; } public static final DBConn getInstance(Context context){ DBConn conn = new DBConn(context); return conn; } public SQLiteDatabase getDb(){ database = openDB(PATH + File.separator + DB_NAME); return database; } public SQLiteDatabase openDB(String dbFile){ try{ if(!isExitFile(dbFile)){ InputStream is = context.getResources().openRawResource(R.raw.test); FileOutputStream fos = new FileOutputStream(dbFile); byte[] buffer = new byte[1024]; int len = -1; while((len = is.read(buffer)) != -1){ fos.write(buffer, 0, len); } is.close(); fos.close(); } database = SQLiteDatabase.openOrCreateDatabase(dbFile, null); return database; }catch (Exception e) { e.printStackTrace(); return null; } } public boolean isExitFile(String path){ File file = new File(path); return file.exists(); }}
DBManage.java主要是對資料庫的封裝,目前只做了個查詢,待後期完善吧,代碼如下:
package com.tp.soft.util;import java.util.ArrayList;import java.util.List;import android.content.Context;import android.database.Cursor;import android.database.sqlite.SQLiteDatabase;public class DBManage { private SQLiteDatabase db; public DBManage(Context context) { DBConn conn = DBConn.getInstance(context); db = conn.getDb(); } public List<String> queryData(String sql, String[] selectionArgs, String property){ Cursor cursor = null; List<String> list = new ArrayList<String>(); try{ cursor = db.rawQuery(sql, selectionArgs); while(cursor.moveToNext()){ String str = cursor.getString(cursor.getColumnIndex(property)); list.add(str); } }catch (Exception e) { e.printStackTrace(); }finally{ if(null != cursor){ cursor.close(); } } return list; } }
主入口就是一個下拉式清單的顯示,然後就是調用sqlite資料庫了,部分代碼如下:
proSelect = (Spinner) findViewById(R.id.proSelect); DBManage dbManage = new DBManage(this); List<String> proList = dbManage.queryData("select * from au_user", null, "username"); ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_gallery_item, proList); proSelect.setAdapter(arrayAdapter);
總結一句話,其實代碼敲多了 才去想怎麼敲,而不是一點都沒敲就去想如何將語句敲到最好 我覺得這個是不可能的,菜鳥自學路程。。。