我想讀取我在WIndows PC上創建的SQLite數據庫。 我只想讀出一張表並顯示在列表視圖上。 是不是可以訪問仿真器上的任何數據庫? 我在Assets文件夾中放置了「DIC.db」。它的表名是DIC。它有四列,一個整數,三個文本列。 我使用DB Browser for SQLite(PC)創建了它。 我想創建一本字典。 ID,日語,英語和發音。 請給我你的意見。SQlite文件無法加載/ Android工作室2.0
public class DatabaseHelper extends SQLiteOpenHelper {
public static final String DBNAME = "DIC.db";
private Context mContext;
private SQLiteDatabase mDatabase;
public DatabaseHelper(Context context) {
super(context, DBNAME, null, 1);
this.mContext = context;
}
@Override
public void onCreate(SQLiteDatabase db) {
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
}
public void openDatabase() {
String dbPath = mContext.getDatabasePath(DBNAME).getPath();
if(mDatabase != null && mDatabase.isOpen()) {
return;
}
mDatabase = SQLiteDatabase.openDatabase(dbPath, null, SQLiteDatabase.OPEN_READWRITE);}
public void closeDatabase() {
if(mDatabase!=null) {mDatabase.close();}
}
public List<SDic> getListWord() {
SDic sDic = null;
List<SoccerDic> wordList = new ArrayList<>();
openDatabase();
Cursor cursor = mDatabase.rawQuery("SELECT * FROM DIC", null);
cursor.moveToFirst();
while (!cursor.isAfterLast()) {
soccerDic = new SDic(cursor.getInt(0), cursor.getString(1), cursor.getString(2), cursor.getString(3));
wordList.add(sDic);
cursor.moveToNext();
}
cursor.close();
closeDatabase();
return wordList;
}
}
這是一個大量文檔化的過程。谷歌有很多關於如何做到這一點的例子。 – njzk2
假設你的代碼是正確的,你把數據庫放到了模擬器的哪裏? –
有一個圖書館可以幫助你做到這一點。 https://github.com/jgilfelt/android-sqlite-asset-helper –