Android ListView中的光标索引越界错误
我面临着一个令人沮丧的问题,我有一个包含3个选项卡和3个列表视图的活动,我面临着一个关于OnItemClick事件的问题。当我单击任何条目时,它会打开另一个活动并正确显示所需的结果,但当我再次返回listview并尝试打开任何条目时,我得到了超出绑定的索引异常索引-1请求。毫无意义的是,3个can中有一个listview可以正常工作,而另2个则不能正常工作。我的代码如下: 此简历:Android ListView中的光标索引越界错误,android,listview,simplecursoradapter,Android,Listview,Simplecursoradapter,我面临着一个令人沮丧的问题,我有一个包含3个选项卡和3个列表视图的活动,我面临着一个关于OnItemClick事件的问题。当我单击任何条目时,它会打开另一个活动并正确显示所需的结果,但当我再次返回listview并尝试打开任何条目时,我得到了超出绑定的索引异常索引-1请求。毫无意义的是,3个can中有一个listview可以正常工作,而另2个则不能正常工作。我的代码如下: 此简历: public void onTextChanged(CharSequence s,
public void onTextChanged(CharSequence s, int start, int before,
int count) {
}
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
}
public void afterTextChanged(final Editable s) {
mAdapter.setFilterQueryProvider(new FilterQueryProvider() {
public Cursor runQuery(CharSequence constraint) {
String value = "%" + constraint + "%";
String Type2 = "%" + jype + "%";
curs = mDb.query(TABLE_NAME, columns, COL_SanTitle
+ " LIKE ? And " + COL_SanCat + " LIKE ?",
new String[] { value, Type2 }, null, null,
COL_SanTitle + " ASC");
return curs;
}
});
fAdapter.setFilterQueryProvider(new FilterQueryProvider() {
public Cursor runQuery(CharSequence constraint) {
String value = "%" + constraint + "%";
String Type2 = "%YES%";
cursF = mDb.query(TABLE_NAME, columns, COL_SandFavor
+ " LIKE ? And " + COL_SanTitle + " LIKE ?",
new String[] { Type2, value }, null, null,
COL_SanTitle + " ASC");
return cursF;
}
});
dAdapter.setFilterQueryProvider(new FilterQueryProvider() {
public Cursor runQuery(CharSequence constraint) {
String value = "%" + constraint + "%";
String Type2 = "%" + jype + "%";
cursD = mDb.query(TABLE_NAME, columns, COL_SanTitle
+ " LIKE ? And " + COL_SanCat + " LIKE ?",
new String[] { value, Type2 }, null, null,
COL_SanTitle + " ASC");
cursD.moveToFirst();
return cursD;
}
}
);
fAdapter.getFilter().filter(s.toString());
mAdapter.getFilter().filter(s.toString());
dAdapter.getFilter().filter(s.toString());
mAdapter.notifyDataSetChanged();
fAdapter.notifyDataSetChanged();
dAdapter.notifyDataSetChanged();
mList.setAdapter(mAdapter);
fList.setAdapter(fAdapter);
dList.setAdapter(dAdapter);
cursD.moveToFirst();
cursS.moveToFirst();
curs.moveToFirst();
}
});
以下是Logcat错误:
04-26 18:56:50.310:E/AndroidRuntime878:致命异常:主
04-26 18:56:50.310:E/AndroidRuntime878:android.database.CursorIndexOutOfBoundsException:请求索引-1,大小为1
04-26 18:56:50.310:E/AndroidRuntime878:at-android.database.AbstractCursor.checkPositionAbstractCursor.java:580
04-26 18:56:50.310:E/AndroidRuntime878:at android.database.AbstractWindowedCursor.checkPositionAbstractWindowedCursor.java:214
04-26 18:56:50.310:E/AndroidRuntime878:at android.database.AbstractWindowedCursor.getStringAbstractWindowedCursor.java:41
04-26 18:56:50.310:E/AndroidRuntime878:at master.chef.mediamaster.Interface.onItemClickInterface.java:781
04-26 18:56:50.310:E/AndroidRuntime878:at-android.widget.AdapterView.performItemClickAdapterView.java:284
04-26 18:56:50.310:E/AndroidRuntime878:at android.widget.ListView.performItemClickListView.java:3513
04-26 18:56:50.310:E/AndroidRuntime878:at android.widget.AbsListView$PerformClick.runAbsListView.java:1812
04-26 18:56:50.310:E/AndroidRuntime878:at android.os.Handler.handleCallbackHandler.java:587
04-26 18:56:50.310:E/AndroidRuntime878:at android.os.Handler.dispatchMessageHandler.java:92
04-26 18:56:50.310:E/AndroidRuntime878:at android.os.Looper.Looper.java:123
04-26 18:56:50.310:E/AndroidRuntime878:at android.app.ActivityThread.mainActivityThread.java:3683
04-26 18:56:50.310:E/AndroidRuntime878:at java.lang.reflect.Method.invokenactive方法
04-26 18:56:50.310:E/AndroidRuntime878:at java.lang.reflect.Method.invokeMethod.java:507
04-26 18:56:50.310:E/AndroidRuntime878:com.android.internal.os.ZygoteInit$MethodAndArgsCaller.runZygoteInit.java:839
04-26 18:56:50.310:E/AndroidRuntime878:at com.android.internal.os.ZygoteInit.mainZygoteInit.java:597
04-26 18:56:50.310:E/AndroidRuntime878:at dalvik.system.NativeStart.main本地方法
您启动了另一个活动,这样就打开了要删除的前一个活动,听起来好像是这样。要解决此问题,请将列表生成代码移动到onResume,然后在您转到另一个活动并返回时,以及在您最初启动该活动时,该代码将运行。是的,它已在onResume中。因此,当从其他活动返回时,应该刷新它。没有意义的是,我有一个listview可以从三个listview正常工作,这三个listview是mList。每当我打开任何条目并再次返回listview时,它都不会显示错误。我现在在查询筛选中的listview也面临同样的问题。我尝试将cusrsor移到第一个,但它仍然是一样的,越界异常。我已经编辑了我的代码,以便在简历中查看并添加moveToFirst-in-on-ResumeSThankss-Imran,就是这样:有任何线索吗???我仍然面临着与下面相同的问题