Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/181.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 要检索SQlite数据并将其设置为映射标记[ForceClose]_Android_Sqlite_Google Maps_Google Maps Markers - Fatal编程技术网

Android 要检索SQlite数据并将其设置为映射标记[ForceClose]

Android 要检索SQlite数据并将其设置为映射标记[ForceClose],android,sqlite,google-maps,google-maps-markers,Android,Sqlite,Google Maps,Google Maps Markers,我有一个SQLite数据库,它存储了所有坐标+描述,以便在标记上录制时显示它们。我正在使用此代码检索所有描述: protected boolean onTap(int index) { db = openHelper.getWritableDatabase(); String[] result_columns = new String[] {COL_DESCRI}; Cursor cur = db.query(true, TA

我有一个SQLite数据库,它存储了所有坐标+描述,以便在标记上录制时显示它们。我正在使用此代码检索所有描述:

protected boolean onTap(int index) {
            db = openHelper.getWritableDatabase();
           String[] result_columns = new String[] {COL_DESCRI};
            Cursor cur = db.query(true, TABLE_COORD, result_columns,
             null, null, null, null, null, null);
             cur.moveToFirst();
             while (cur.isAfterLast() == false) {
                String description = cur.getString(cur.getColumnIndexOrThrow("Description"));

                AlertDialog.Builder dialog = new AlertDialog.Builder(Geo.this);
                dialog.setTitle("Infos.");
                dialog.setMessage(description);
                dialog.setPositiveButton("OK", new OnClickListener() {    
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        dialog.dismiss();
                    }
                });
                dialog.show();

                cur.moveToNext();
             }
             cur.close();
             db.close();

            return true;
然而,我有一个奇怪的问题,表明我没有描述列,我很确定我有它

08-23 02:45:02.848: ERROR/AndroidRuntime(287): Uncaught handler: thread main exiting due to uncaught exception
08-23 02:45:02.890: ERROR/AndroidRuntime(287): android.database.sqlite.SQLiteException: no such column: Description: , while compiling: SELECT DISTINCT Description FROM table_coordonnées
08-23 02:45:02.890: ERROR/AndroidRuntime(287):     at android.database.sqlite.SQLiteProgram.native_compile(Native Method)
08-23 02:45:02.890: ERROR/AndroidRuntime(287):     at android.database.sqlite.SQLiteProgram.compile(SQLiteProgram.java:110)
08-23 02:45:02.890: ERROR/AndroidRuntime(287):     at android.database.sqlite.SQLiteProgram.<init>(SQLiteProgram.java:59)
08-23 02:45:02.890: ERROR/AndroidRuntime(287):     at android.database.sqlite.SQLiteQuery.<init>(SQLiteQuery.java:49)
08-23 02:45:02.890: ERROR/AndroidRuntime(287):     at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:49)
08-23 02:45:02.890: ERROR/AndroidRuntime(287):     at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1220)
08-23 02:45:02.890: ERROR/AndroidRuntime(287):     at android.database.sqlite.SQLiteDatabase.queryWithFactory(SQLiteDatabase.java:1107)
08-23 02:45:02.890: ERROR/AndroidRuntime(287):     at android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1065)
08-23 02:45:02.890: ERROR/AndroidRuntime(287):     at carburant.android.com.Geo$ItemizedOverlayPerso.onTap(Geo.java:239)
08-23 02:45:02.890: ERROR/AndroidRuntime(287):     at com.google.android.maps.ItemizedOverlay.onTap(ItemizedOverlay.java:453)
08-23 02:45:02.890: ERROR/AndroidRuntime(287):     at com.google.android.maps.OverlayBundle.onTap(OverlayBundle.java:83)
08-23 02:45:02.890: ERROR/AndroidRuntime(287):     at com.google.android.maps.MapView$1.onSingleTapUp(MapView.java:346)
08-23 02:45:02.890: ERROR/AndroidRuntime(287):     at android.view.GestureDetector.onTouchEvent(GestureDetector.java:506)
08-23 02:45:02.890: ERROR/AndroidRuntime(287):     at com.google.android.maps.MapView.onTouchEvent(MapView.java:628)
08-23 02:45:02.890: ERROR/AndroidRuntime(287):     at android.view.View.dispatchTouchEvent(View.java:3709)
08-23 02:45:02.890: ERROR/AndroidRuntime(287):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:852)
08-23 02:45:02.890: ERROR/AndroidRuntime(287):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
08-23 02:45:02.890: ERROR/AndroidRuntime(287):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
08-23 02:45:02.890: ERROR/AndroidRuntime(287):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
08-23 02:45:02.890: ERROR/AndroidRuntime(287):     at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)
08-23 02:45:02.890: ERROR/AndroidRuntime(287):     at com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1659)
08-23 02:45:02.890: ERROR/AndroidRuntime(287):     at com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1107)
08-23 02:45:02.890: ERROR/AndroidRuntime(287):     at android.app.Activity.dispatchTouchEvent(Activity.java:2061)
08-23 02:45:02.890: ERROR/AndroidRuntime(287):     at com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1643)
08-23 02:45:02.890: ERROR/AndroidRuntime(287):     at android.view.ViewRoot.handleMessage(ViewRoot.java:1691)
08-23 02:45:02.890: ERROR/AndroidRuntime(287):     at android.os.Handler.dispatchMessage(Handler.java:99)
08-23 02:45:02.890: ERROR/AndroidRuntime(287):     at android.os.Looper.loop(Looper.java:123)
08-23 02:45:02.890: ERROR/AndroidRuntime(287):     at android.app.ActivityThread.main(ActivityThread.java:4363)
08-23 02:45:02.890: ERROR/AndroidRuntime(287):     at java.lang.reflect.Method.invokeNative(Native Method)
08-23 02:45:02.890: ERROR/AndroidRuntime(287):     at java.lang.reflect.Method.invoke(Method.java:521)
08-23 02:45:02.890: ERROR/AndroidRuntime(287):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
08-23 02:45:02.890: ERROR/AndroidRuntime(287):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
08-23 02:45:02.890: ERROR/AndroidRuntime(287):     at dalvik.system.NativeStart.main(Native Method)
08-23 02:45:02.848:错误/AndroidRuntime(287):未捕获处理程序:由于未捕获异常,线程主线程正在退出
08-23 02:45:02.890:ERROR/AndroidRuntime(287):android.database.sqlite.SQLiteException:没有这样的列:Description:,编译时:从表中选择不同的描述
08-23 02:45:02.890:ERROR/AndroidRuntime(287):在android.database.sqlite.SQLiteProgram.native_编译(native方法)
08-23 02:45:02.890:ERROR/AndroidRuntime(287):位于android.database.sqlite.SQLiteProgram.compile(SQLiteProgram.java:110)
08-23 02:45:02.890:ERROR/AndroidRuntime(287):位于android.database.sqlite.SQLiteProgram.(SQLiteProgram.java:59)
08-23 02:45:02.890:ERROR/AndroidRuntime(287):位于android.database.sqlite.SQLiteQuery.(SQLiteQuery.java:49)
08-23 02:45:02.890:ERROR/AndroidRuntime(287):位于android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:49)
08-23 02:45:02.890:ERROR/AndroidRuntime(287):位于android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1220)
08-23 02:45:02.890:ERROR/AndroidRuntime(287):位于android.database.sqlite.SQLiteDatabase.queryWithFactory(SQLiteDatabase.java:1107)
08-23 02:45:02.890:ERROR/AndroidRuntime(287):位于android.database.sqlite.SQLiteDatabase.query(SQLiteDatabase.java:1065)
08-23 02:45:02.890:ERROR/AndroidRuntime(287):位于carbonant.android.com.Geo$ItemizedOverlayPerso.onTap(Geo.java:239)
08-23 02:45:02.890:ERROR/AndroidRuntime(287):位于com.google.android.maps.ItemizedOverlay.onTap(ItemizedOverlay.java:453)
08-23 02:45:02.890:ERROR/AndroidRuntime(287):位于com.google.android.maps.overlybundle.onTap(overlybundle.java:83)
08-23 02:45:02.890:ERROR/AndroidRuntime(287):位于com.google.android.maps.MapView$1.onsingletapp(MapView.java:346)
08-23 02:45:02.890:ERROR/AndroidRuntime(287):在android.view.GestureDetector.onTouchEvent(GestureDetector.java:506)
08-23 02:45:02.890:ERROR/AndroidRuntime(287):位于com.google.android.maps.MapView.onTouchEvent(MapView.java:628)
08-23 02:45:02.890:ERROR/AndroidRuntime(287):在android.view.view.dispatchTouchEvent(view.java:3709)上
08-23 02:45:02.890:ERROR/AndroidRuntime(287):在android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:852)上
08-23 02:45:02.890:ERROR/AndroidRuntime(287):在android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)上
08-23 02:45:02.890:ERROR/AndroidRuntime(287):在android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)上
08-23 02:45:02.890:ERROR/AndroidRuntime(287):在android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)上
08-23 02:45:02.890:ERROR/AndroidRuntime(287):在android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:884)上
08-23 02:45:02.890:ERROR/AndroidRuntime(287):位于com.android.internal.policy.impl.PhoneWindow$DecorView.superDispatchTouchEvent(PhoneWindow.java:1659)
08-23 02:45:02.890:ERROR/AndroidRuntime(287):在com.android.internal.policy.impl.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1107)
08-23 02:45:02.890:ERROR/AndroidRuntime(287):在android.app.Activity.dispatchTouchEvent(Activity.java:2061)上
08-23 02:45:02.890:ERROR/AndroidRuntime(287):位于com.android.internal.policy.impl.PhoneWindow$DecorView.dispatchTouchEvent(PhoneWindow.java:1643)
08-23 02:45:02.890:ERROR/AndroidRuntime(287):在android.view.ViewRoot.handleMessage(ViewRoot.java:1691)上
08-23 02:45:02.890:ERROR/AndroidRuntime(287):位于android.os.Handler.dispatchMessage(Handler.java:99)
08-23 02:45:02.890:ERROR/AndroidRuntime(287):在android.os.Looper.loop(Looper.java:123)上
08-23 02:45:02.890:ERROR/AndroidRuntime(287):位于android.app.ActivityThread.main(ActivityThread.java:4363)
08-23 02:45:02.890:ERROR/AndroidRuntime(287):位于java.lang.reflect.Method.invokenactive(本机方法)
08-23 02:45:02.890:ERROR/AndroidRuntime(287):位于java.lang.reflect.Method.invoke(Method.java:521)
08-23 02:45:02.890:ERROR/AndroidRuntime(287):位于com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
08-23 02:45:02.890:ERROR/AndroidRuntime(287):位于com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
08-23 02:45:02.890:ERROR/AndroidRuntime(287):在dalvik.system.NativeStart.main(本机方法)
请问有什么问题? 感谢您的帮助。

它看起来像是“没有这样的专栏:描述”,因此您必须检查一次数据库,而且您走错了方向

您正在
onTap()
方法中获取坐标,获取光标后,您将获取循环,在循环中,您将为显示对话框编写代码

因此
您的代码将只提供最后一条记录的描述。


您必须为所有坐标创建描述数组,然后在
onTap(int-index)
中,您必须使用onTap(int-index)方法的索引变量
获取坐标
请检查您的创建语句和查询。我会在任何地方使用小写。在编辑中,您编写coordoonnees和table_coordoonnees。两者不匹配


SQLite错误消息总是非常有用的。如果SQLite告诉您缺少一个表或列,则此项肯定是缺少或拼写错误。

“没有这样的列:说明”看起来很有趣。@pst:奇怪的是,我有它,大写字母D:\如果表名是纯ASCII,是否存在问题?(不确定是否存在国际化问题。)@pst:我发现我现在与表有冲突,我将tabel name重命名为Coordonnes,我有这样一个:
没有这样的表:table_Coordonnes:,而