的CursorIndexOutOfBoundsException问题:要求索引4,大小为4

的CursorIndexOutOfBoundsException问题:要求索引4,大小为4,第1张

概述我想为每个制造商显示一​​个具有一些描述的AlertDialog,为此,我正在使用以下代码:protectedbooleanonTap(intindex){db=openHelper.getWritableDatabase();String[]result_columns=newString[]{COL_DESCRI};Cursorcur=d

我想为每个制造商显示一​​个具有一些描述的AlertDialog,为此,我正在使用以下代码:

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.movetoposition(index);                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;        }

问题是存在一些提示警报结果正确的标记,而当我点击它时,我有一个FC.
logcat的:

08-23 17:41:37.531: ERROR/AndroIDRuntime(10004): Uncaught handler: thread main exiting due to uncaught exception08-23 17:41:37.550: ERROR/AndroIDRuntime(10004): androID.database.Cursorindexoutofboundsexception: Index 4 requested, with a size of 408-23 17:41:37.550: ERROR/AndroIDRuntime(10004):     at androID.database.AbstractCursor.checkposition(AbstractCursor.java:580)08-23 17:41:37.550: ERROR/AndroIDRuntime(10004):     at androID.database.AbstractwindowedCursor.checkposition(AbstractwindowedCursor.java:214)08-23 17:41:37.550: ERROR/AndroIDRuntime(10004):     at androID.database.AbstractwindowedCursor.getString(AbstractwindowedCursor.java:41)08-23 17:41:37.550: ERROR/AndroIDRuntime(10004):     at carburant.androID.com.Geo$itemizedoverlayPerso.onTap(Geo.java:244)08-23 17:41:37.550: ERROR/AndroIDRuntime(10004):     at com.Google.androID.maps.itemizedoverlay.onTap(itemizedoverlay.java:453)08-23 17:41:37.550: ERROR/AndroIDRuntime(10004):     at com.Google.androID.maps.OverlayBundle.onTap(OverlayBundle.java:83)08-23 17:41:37.550: ERROR/AndroIDRuntime(10004):     at com.Google.androID.maps.MapVIEw.onSingleTapUp(MapVIEw.java:346)08-23 17:41:37.550: ERROR/AndroIDRuntime(10004):     at androID.vIEw.GestureDetector.ontouchEvent(GestureDetector.java:506)08-23 17:41:37.550: ERROR/AndroIDRuntime(10004):     at com.Google.androID.maps.MapVIEw.ontouchEvent(MapVIEw.java:628)08-23 17:41:37.550: ERROR/AndroIDRuntime(10004):     at androID.vIEw.VIEw.dispatchtouchEvent(VIEw.java:3709)08-23 17:41:37.550: ERROR/AndroIDRuntime(10004):     at androID.vIEw.VIEwGroup.dispatchtouchEvent(VIEwGroup.java:852)08-23 17:41:37.550: ERROR/AndroIDRuntime(10004):     at androID.vIEw.VIEwGroup.dispatchtouchEvent(VIEwGroup.java:884)08-23 17:41:37.550: ERROR/AndroIDRuntime(10004):     at androID.vIEw.VIEwGroup.dispatchtouchEvent(VIEwGroup.java:884)08-23 17:41:37.550: ERROR/AndroIDRuntime(10004):     at androID.vIEw.VIEwGroup.dispatchtouchEvent(VIEwGroup.java:884)08-23 17:41:37.550: ERROR/AndroIDRuntime(10004):     at androID.vIEw.VIEwGroup.dispatchtouchEvent(VIEwGroup.java:884)08-23 17:41:37.550: ERROR/AndroIDRuntime(10004):     at com.androID.internal.policy.impl.PhoneWindow$DecorVIEw.superdispatchtouchEvent(PhoneWindow.java:1659)08-23 17:41:37.550: ERROR/AndroIDRuntime(10004):     at com.androID.internal.policy.impl.PhoneWindow.superdispatchtouchEvent(PhoneWindow.java:1107)08-23 17:41:37.550: ERROR/AndroIDRuntime(10004):     at androID.app.Activity.dispatchtouchEvent(Activity.java:2061)08-23 17:41:37.550: ERROR/AndroIDRuntime(10004):     at com.androID.internal.policy.impl.PhoneWindow$DecorVIEw.dispatchtouchEvent(PhoneWindow.java:1643)08-23 17:41:37.550: ERROR/AndroIDRuntime(10004):     at androID.vIEw.VIEwRoot.handleMessage(VIEwRoot.java:1691)08-23 17:41:37.550: ERROR/AndroIDRuntime(10004):     at androID.os.Handler.dispatchMessage(Handler.java:99)08-23 17:41:37.550: ERROR/AndroIDRuntime(10004):     at androID.os.Looper.loop(Looper.java:123)08-23 17:41:37.550: ERROR/AndroIDRuntime(10004):     at androID.app.ActivityThread.main(ActivityThread.java:4363)08-23 17:41:37.550: ERROR/AndroIDRuntime(10004):     at java.lang.reflect.Method.invokeNative(Native Method)08-23 17:41:37.550: ERROR/AndroIDRuntime(10004):     at java.lang.reflect.Method.invoke(Method.java:521)08-23 17:41:37.550: ERROR/AndroIDRuntime(10004):     at com.androID.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)08-23 17:41:37.550: ERROR/AndroIDRuntime(10004):     at com.androID.internal.os.ZygoteInit.main(ZygoteInit.java:618)08-23 17:41:37.550: ERROR/AndroIDRuntime(10004):     at dalvik.system.NativeStart.main(Native Method)

当我把cur.movetoposition(index);在字符串描述下= cur.getString(cur.getColumnIndexOrThrow(“ description”));我要求索引-1,大小为4,否则,如上述代码要求索引4,大小为4

解决方法:

数组索引从0开始,而不是1.第四个元素存储在索引3中.

When i put cur.movetoposition(index); under String description = cur.getString(cur.getColumnIndexOrThrow(“description”)); i have Index -1 requested, with a size of 4 otherwise, like above code Index 4 requested, with a size of 4

第一次返回行集时,光标将在第一行之前的positon -1处.

总结

以上是内存溢出为你收集整理的的CursorIndexOutOfBoundsException问题:要求索引4,大小为4全部内容,希望文章能够帮你解决的CursorIndexOutOfBoundsException问题:要求索引4,大小为4所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1093159.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存