Java 在Android Studio中从SQlite获取数据时出错
我有一个JSON数组。我正在使用Java 在Android Studio中从SQlite获取数据时出错,java,android,sqlite,Java,Android,Sqlite,我有一个JSON数组。我正在使用DatabaseHelper传输数据,但无法获取数据。我知道我犯了一个简单的错误,但它只是不可见 这是onCreate方法 arrayList = database.getAllData(); ArrayAdapter adapter = new ArrayAdapter(getApplicationContext(), android.R.layout.activity_list_item, android.R.id.text1,
DatabaseHelper
传输数据,但无法获取数据。我知道我犯了一个简单的错误,但它只是不可见
这是onCreate
方法
arrayList = database.getAllData();
ArrayAdapter adapter = new ArrayAdapter(getApplicationContext(),
android.R.layout.activity_list_item,
android.R.id.text1,
arrayList);
listView.setAdapter(adapter);
这是getAllData
public Cursor getAllData() {
SQLiteDatabase db = this.getWritableDatabase();
Cursor res = db.rawQuery("select * from "+TABLE_NAME,null);
return res;
}
这是我曾经做过的事。你能从中得到一个想法吗?:)
public ArrayList getAllRecords\u ArrayList(字符串表\u名称){
//创建一个数组列表
ArrayList List_Of_Records=新的ArrayList();
//创建数据库对象
SQLiteDatabase DB=this.getReadableDatabase();
//创建一个游标文件,我们可以通过执行上面的命令获得它
游标crsr=DB.query(
表格名称,
新字符串[]{COLUMN_DATE,COLUMN_CATEGORY,COLUMN_AMOUNT},
null,null,null,null,COLUMN_DATE);
crsr.moveToFirst();
而(!crsr.isAfterLast()){
//将其添加到数组列表中
记录列表。添加(新项目记录)(
crsr.getString(crsr.getColumnIndex(COLUMN_DATE)),
crsr.getString(crsr.getColumnIndex(COLUMN_CATEGORY)),
crsr.getDouble(crsr.getColumnIndex(列金额));
//去下一排
crsr.moveToNext();
}
//关闭数据库和光标并返回列表
crsr.close();DB.close();
记录的返回列表;
}
是不是这个.getReadableDatabase()@Venky u r使用第一个从本地数据库获取数据的方法,这是一个使用doing background方法的时间。然后查找arraylist,getAllData()方法返回一个游标!就像我说的,伙计们,我是新来的,希望你们能帮忙
public ArrayList<Item_Record> getAllRecords_ArrayList (String Table_Name) {
// Create an array list
ArrayList<Item_Record> List_Of_Records = new ArrayList<>();
// Create a database object
SQLiteDatabase DB = this.getReadableDatabase();
// Create a cursor file we get from executing this above command
Cursor crsr = DB.query(
Table_Name,
new String[] {COLUMN_DATE, COLUMN_CATEGORY, COLUMN_AMOUNT},
null, null, null, null, COLUMN_DATE);
crsr.moveToFirst();
while (! crsr.isAfterLast()) {
// Add that to the array list
List_Of_Records.add(new Item_Record(
crsr.getString(crsr.getColumnIndex(COLUMN_DATE)),
crsr.getString(crsr.getColumnIndex(COLUMN_CATEGORY)),
crsr.getDouble(crsr.getColumnIndex(COLUMN_AMOUNT))));
// Go to the next row
crsr.moveToNext();
}
// Closes database and cursor and return the list
crsr.close(); DB.close();
return List_Of_Records;
}