我在使用 SQLite 时遇到了这个奇怪的问题;我从数据库、复选框列表动态生成了这个...当我第一次打开我的应用程序时,它无法在我的线性布局中正确加载,实际上 sqlite 查询不返回任何字符串! 但是,当我更改 fragment (从我的第一个 Pane 到 map Pane )并返回(到我的第一个 Pane ,我应该在其中看到我的复选框列表)时,一切都按预期工作,并且复选框列表出现!我的 logcat 没有显示任何异常或任何可疑的内容...
这是我的方法:
private int setCheckboxes(){
SQLiteDatabase database = DatabaseManager.getInstance().openDatabase();
database.setLocale(Locale.getDefault());
String queryRoutes="SELECT * FROM"+tableRoute;
Cursor dataRoutes = database.rawQuery(queryRoutes, null);
ArrayList<String> routesStrings = new returnMapStuff().getRoutesArray(dataRoutes);
DatabaseManager.getInstance().closeDatabase();
routesStrings.size();
try{
CheckBox cb;
for (int i = 0; i < routesStrings.size(); i++) {
cb = new CheckBox(context);
cb.setText(routesStrings.get(i));
cb.setId(i);
ll.addView(cb);
}
}catch (Exception e){e.printStackTrace();}
return routesStrings.size();
}
我就是这样调用它的:
View view = inflater.inflate(R.layout.fragment_main, container, false);
ll = (LinearLayout) view.findViewById(R.id.CheckboxLL);
int howManyCheckboxes =setCheckboxes();
this is my logcat with a few log.i():
04-01 09:22:40.883 2412-2412/pack.androidmap I/POSA CHECKBOXES?﹕ 0
//return value(setCheckboxes()) first then it runs (inside)returnMapstuff():
04-01 09:23:00.451 2412-2412/pack.androidmap I/POSA route mesa mapstuff?﹕ paralia
04-01 09:23:00.451 2412-2412/pack.androidmap I/POSA route mesa mapstuff?﹕ petalo
04-01 09:23:00.451 2412-2412/pack.androidmap I/POSA route mesa mapstuff?﹕ partali
04-01 09:23:00.451 2412-2412/pack.androidmap I/POSA route mesa mapstuff?﹕ ateik
04-01 09:23:00.451 2412-2412/pack.androidmap I/POSA route mesa mapstuff?﹕ pagni
04-01 09:23:00.451 2412-2412/pack.androidmap I/POSA route mesa mapstuff?﹕ λύκαστος
04-01 09:23:00.451 2412-2412/pack.androidmap I/POSA route mesa mapstuff?﹕ smallville
04-01 09:23:00.451 2412-2412/pack.androidmap I/POSA route mesa mapstuff?﹕ αλί καρνέησον
04-01 09:23:00.451 2412-2412/pack.androidmap I/POSA route mesa mapstuff?﹕ καμπαμαρούν
// but when I press back (first returnMapstuff()):
04-01 09:23:04.843 2412-2412/pack.androidmap I/POSA route mesa mapstuff?﹕ paralia
04-01 09:23:04.843 2412-2412/pack.androidmap I/POSA route mesa mapstuff?﹕ petalo
04-01 09:23:04.843 2412-2412/pack.androidmap I/POSA route mesa mapstuff?﹕ partali
04-01 09:23:04.843 2412-2412/pack.androidmap I/POSA route mesa mapstuff?﹕ ateik
04-01 09:23:04.843 2412-2412/pack.androidmap I/POSA route mesa mapstuff?﹕ pagni
04-01 09:23:04.843 2412-2412/pack.androidmap I/POSA route mesa mapstuff?﹕ λύκαστος
04-01 09:23:04.843 2412-2412/pack.androidmap I/POSA route mesa mapstuff?﹕ smallville
04-01 09:23:04.843 2412-2412/pack.androidmap I/POSA route mesa mapstuff?﹕ αλί καρνέησον
04-01 09:23:04.843 2412-2412/pack.androidmap I/POSA route mesa mapstuff?﹕ καμπαμαρούν
//then return value of setCheckboxes()
04-01 09:23:04.847 2412-2412/pack.androidmap I/POSA CHECKBOXES?﹕ 9
这怎么可能?
最佳答案
实际上sqlite查询不返回任何字符串!
这里少了一个空格
String queryRoutes="SELECT * FROM"+tableRoute;
一定是
String queryRoutes="SELECT * FROM "+tableRoute;
关于java - android SQLite 方法故障(?!?!),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29386410/