イライラする問題に直面しています。3 つのタブと 3 つの ListViews を持つアクティビティがあり、OnItemClick イベントの問題に直面しています。任意のエントリをクリックすると、別のアクティビティが開き、目的の結果が適切に表示されますが、リストビューに戻って任意のエントリを開こうとすると、Index out of bound 例外 Index -1 が要求されました。意味がないのは、3つのリストビューが正常に機能し、他の2つは機能しないということです。以下私のコード:
この OnResume () :
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/AndroidRuntime(878): 致命的な例外: メイン 04-26 18:56:50.310: E/AndroidRuntime(878): android.database.CursorIndexOutOfBoundsException: インデックス -1 がサイズで要求されました1 04-26 18:56:50.310: E/AndroidRuntime(878): android.database.AbstractCursor.checkPosition(AbstractCursor.java:580) 04-26 18:56:50.310: E/AndroidRuntime(878): でandroid.database.AbstractWindowedCursor.checkPosition(AbstractWindowedCursor.java:214) 04-26 18:56:50.310: E/AndroidRuntime(878): android.database.AbstractWindowedCursor.getString(AbstractWindowedCursorjava.:41) 04-26 18: 56:50.310: E/AndroidRuntime(878): master.chef.mediamaster.Interface.onItemClick(Interface.java:781) 04-26 18:56:50.310: E/AndroidRuntime(878): android.widget.AdapterView で.performItemClick(AdapterView.java:284) 04-26 18:56:50.310: E/AndroidRuntime(878):android.widget.ListView.performItemClick(ListView.java:3513) 04-26 18:56:50.310: E/AndroidRuntime(878): android.widget.AbsListView$PerformClick.run(AbsListView.java:1812) 04- 26 18:56:50.310: E/AndroidRuntime(878): android.os.Handler.handleCallback(Handler.java:587) 04-26 18:56:50.310: E/AndroidRuntime(878): android.os で。 Handler.dispatchMessage(Handler.java:92) 04-26 18:56:50.310: E/AndroidRuntime(878): android.os.Looper.loop(Looper.java:123) 04-26 18:56:50.310: E/AndroidRuntime(878): android.app.ActivityThread.main(ActivityThread.java:3683) 04-26 18:56:50.310: E/AndroidRuntime(878): java.lang.reflect.Method.invokeNative(Native) でメソッド) 04-26 18:56:50.310: E/AndroidRuntime(878): java.lang.reflect.Method.invoke(Method.java:507) 04-26 18:56:50.310: E/AndroidRuntime(878) : com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839) 04-26 18:56:50.310: E/AndroidRuntime(878): com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597) 04-26 18:56:50.310: E/AndroidRuntime(878): dalvik.system.NativeStart.main(ネイティブメソッド)