我一直在试图从一个名为的工作站的数据库中检索一些数据,然后将它存储到数据库列表视图中。当我打电话给这个活动的应用程序停止。如何使用rawQuery()将数据存储到字符串数组中?
继承人的代码:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_list_view);
SQLiteDatabase db = openOrCreateDatabase("Station.db", SQLiteDatabase.CREATE_IF_NECESSARY, null);
Cursor data_fetch = db.rawQuery("Select * From Station", null);
String[] station_array = new String[data_fetch.getCount()];
int i = 0;
while(data_fetch.moveToNext()){
String uname = data_fetch.getString(data_fetch.getColumnIndex("Station_name"));
station_array[i] = uname;
i++;
}
ArrayAdapter station_adapter = new ArrayAdapter<String>(this,R.layout.activity_list_view,station_array);
ListView station_listView = (ListView) findViewById(R.id.station_list);
station_listView.setAdapter(station_adapter);
}
应用程序的工作原理,当我注释掉
Cursor data_fetch = db.rawQuery("Select * From Station", null);
这使我相信,这条线是一个导致应用程序崩溃,但我无法找到任何问题。
请注意,我已经在之前的活动中创建并将数据插入数据库站。 任何提示将不胜感激。谢谢你提前。 PS:我是一个新手,所以请让我知道,如果有什么其他的重要性,我省略了!
如果您已经在以前的活动创造并插入数据到数据库站,那么你为什么再次打开或创建它?为数据库打开或创建以及其他所有内容创建分离类。你只需要创建该类的对象。请参阅此链接:: https://www.androidhive.info/2011/11/android-sqlite-database-tutorial/ – zephyr
我认为变量数据库是你如何与数据库交互我的不好。 –
并且还更改您的代码以获取所有数据:Cursor data_fetch = db.rawQuery(“Select * From Station”,null); (data_fetch.moveToFirst()){0} {0} {0} (data_fetch.moveToNext()); //“email”==表中的列名称 } while(data_fetch.moveToNext()); } – zephyr