我是Android编程新手,我坚持从SQLite DB检索数据并将其显示在TextView/ListView的应用程序中。我已经尝试了很多方法,但我只是在兜圈子。欢迎任何方向!谢谢。
主.java:
public void LoadIngredient1() {
TestAdapter mDbHelper = new TestAdapter(this);
mDbHelper.createDatabase();
mDbHelper.open();
// TO DO ?
mDbHelper.close();
}
测试适配器.java:
public Cursor getData() {
String sql ="SELECT ID_Ingredient1, Ingredient1, tmp FROM Ingredient_1";
Cursor mCur = mDb.rawQuery(sql, null);
if (mCur!=null)
{
mCur.moveToNext();
}
return mCur;
}
为什么要获取光标?我只会构建一个要返回的对象。下面是一些示例代码:测试适配器.java
public class TestAdapter extends SQLiteOpenHelper {
public TestAdapter(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
...
public YourObject getData() {
YourObject yourObject = new YourObject();
String sql ="SELECT ID_Ingredient1, Ingredient1, tmp FROM Ingredient_1";
SQLiteDatabase mDb = this.getWritableDatabase();
Cursor mCur = mDb.rawQuery(sql, null);
if (mCur.moveToFirst()) {
yourObject.setId(cursor.getInt(cursor.getColumnIndex(ID_Ingredient1)));
yourObject.setIngridient(cursor.getString(cursor.getColumnIndex(ID_Ingredient1)));
...
}
return yourObject;
}
}
public ArrayList<MyDataObject> getData(){
ArrayList<MyDataObject> result = new ArrayList<MyDataObject>();
open database
Cursor c = null;
try{
c = database.rawQuery("Select * from myDataObjectTable",null);
while(c!=null && c.moveToNext()){
MyDataObject object = new MyDataObject();
object.setId(c.getInt(c.getColumnIndex("ID Column")));
object.setName(c.getString(c.getColumnIndex("Name")));
object.setSomething(c.getBoolean(c.getColumnIndex("SOMETHING THERE COLUMN")));
result.add(object);
}
}catch(Exception e){
Log.d(TAG,"some error",e);
} finally{
if(c!=null) c.close();
}
return result;
}
终于我找到了解决方案。我找到了本教程: http://mobisys.in/blog/tag/shipping-of-external-database-to-application/感谢您的帮助!