[英]using SQLiteAssetHelper
MyDatabase類
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteQueryBuilder;
import com.readystatesoftware.sqliteasset.SQLiteAssetHelper;
public class Mydatabase extends SQLiteAssetHelper{
private static final String DATABASE_NAME = "databases/mydb.db";
private static final int DATABASE_VERSION = 1;
public Mydatabase(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
public Cursor getEmployees() {
SQLiteDatabase db = getReadableDatabase();
SQLiteQueryBuilder qb = new SQLiteQueryBuilder();
String [] sqlSelect = {"_id", "name", "email"};
String sqlTables = "contacts";
qb.setTables(sqlTables);
Cursor c = qb.query(db, sqlSelect, null, null,
null, null, null);
c.moveToFirst();
return c;
}
MainActivity類
public class MainActivity extends ListActivity {
private Cursor employees;
private MyDatabase db;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
db = new MyDatabase(this);
employees = db.getEmployees(); // you would not typically call this on the main thread
ListAdapter adapter = new SimpleCursorAdapter(this,
android.R.layout.simple_list_item_1,
employees,
new String[] {"name"},
new int[] {android.R.id.list});
getListView().setAdapter(adapter);
}
@Override
protected void onDestroy() {
super.onDestroy();
employees.close();
db.close();
}
}
我想在資產文件夾中連接數據庫,我嘗試從GitHub嘗試此示例,但應用程序停止工作
logcate:致命異常:main java.lang.IllegalStateException:無法執行活動的方法
Caused by: java.lang.IllegalArgumentException: File databases/mydb.db contains a path separator
任何幫助,請謝謝
我剛剛使數據庫正常工作,但沒有引用數據庫為
private static final String DATABASE_NAME = "databases/mydb.db";
我按如下方式訪問它:
private static final String DATABASE_NAME = "mydb.db";
我只是測試了您的方式,並且確定它會破壞它。 因此,刪除database/
,只有mydb.db
,它應該可以工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.