SQLite로 조회된 Cursor로 ListView에 출력한 후

다시  [추가]라는 버턴으로 한줄짜리 Row를 ListView에 추가를 하는 일이생겨서

new MergeCursor라는 Api를 사용을 해 봤습니다.

 

문제는 추가라는 버턴에서 MergeCursor를 사용하면  Exception이 발생을 합니다.

 

E/AndroidRuntime(13337): java.lang.IllegalStateException: attempt to re-open an
already-closed object: android.database.sqlite.SQLiteQuery (mSql = 생략함.....
E/AndroidRuntime(13337):        at android.database.sqlite.SQLiteClosable.acquir
eReference(SQLiteClosable.java:34)
E/AndroidRuntime(13337):        at android.database.sqlite.SQLiteQuery.fillWindo
w(SQLiteQuery.java:67)
E/AndroidRuntime(13337):        at android.database.sqlite.SQLiteCursor.fillWind
ow(SQLiteCursor.java:287)
E/AndroidRuntime(13337):        at android.database.sqlite.SQLiteCursor.onMove(S
QLiteCursor.java:259)
E/AndroidRuntime(13337):        at android.database.AbstractCursor.moveToPositio
n(AbstractCursor.java:188)
E/AndroidRuntime(13337):        at android.database.MergeCursor.onMove(MergeCurs
or.java:89)
E/AndroidRuntime(13337):        at android.database.AbstractCursor.moveToPositio
n(AbstractCursor.java:188)
E/AndroidRuntime(13337):        at android.database.MergeCursor.onMove(MergeCurs
or.java:89)
E/AndroidRuntime(13337):        at android.database.AbstractCursor.moveToPositio
n(AbstractCursor.java:188)
E/AndroidRuntime(13337):        at android.widget.CursorAdapter.getView(CursorAd
apter.java:177)
E/AndroidRuntime(13337):        at com.sale.activity.SaleAppActivity$HistoryAdap
ter.getView(SaleAppActivity.java:1068)
E/AndroidRuntime(13337):        at android.widget.AbsListView.obtainView(AbsList
View.java:1409)
E/AndroidRuntime(13337):        at android.widget.ListView.makeAndAddView(ListVi
ew.java:1745)
E/AndroidRuntime(13337):        at android.widget.ListView.fillDown(ListView.jav
a:670)
E/AndroidRuntime(13337):        at android.widget.ListView.fillSpecific(ListView
.java:1302)
E/AndroidRuntime(13337):        at android.widget.ListView.layoutChildren(ListVi
ew.java:1576)
E/AndroidRuntime(13337):        at android.widget.AbsListView.onLayout(AbsListVi
ew.java:1260)
E/AndroidRuntime(13337):        at android.view.View.layout(View.java:7175)
E/AndroidRuntime(13337):        at android.widget.RelativeLayout.onLayout(Relati
veLayout.java:912)
E/AndroidRuntime(13337):        at android.view.View.layout(View.java:7175)
E/AndroidRuntime(13337):        at android.widget.FrameLayout.onLayout(FrameLayo
ut.java:338)
E/AndroidRuntime(13337):        at android.view.View.layout(View.java:7175)
E/AndroidRuntime(13337):        at android.widget.RelativeLayout.onLayout(Relati
veLayout.java:912)
E/AndroidRuntime(13337):        at android.view.View.layout(View.java:7175)
E/AndroidRuntime(13337):        at android.widget.FrameLayout.onLayout(FrameLayo
ut.java:338)
E/AndroidRuntime(13337):        at android.view.View.layout(View.java:7175)
E/AndroidRuntime(13337):        at android.widget.FrameLayout.onLayout(FrameLayo
ut.java:338)
E/AndroidRuntime(13337):        at android.view.View.layout(View.java:7175)
E/AndroidRuntime(13337):        at android.view.ViewRoot.performTraversals(ViewR
oot.java:1140)
E/AndroidRuntime(13337):        at android.view.ViewRoot.handleMessage(ViewRoot.
java:1859)
E/AndroidRuntime(13337):        at android.os.Handler.dispatchMessage(Handler.ja
va:99)
E/AndroidRuntime(13337):        at android.os.Looper.loop(Looper.java:123)
E/AndroidRuntime(13337):        at android.app.ActivityThread.main(ActivityThrea
d.java:3683)
E/AndroidRuntime(13337):        at java.lang.reflect.Method.invokeNative(Native
Method)
E/AndroidRuntime(13337):        at java.lang.reflect.Method.invoke(Method.java:5
07)
E/AndroidRuntime(13337):        at com.android.internal.os.ZygoteInit$MethodAndA
rgsCaller.run(ZygoteInit.java:839)
E/AndroidRuntime(13337):        at com.android.internal.os.ZygoteInit.main(Zygot
eInit.java:597)
E/AndroidRuntime(13337):        at dalvik.system.NativeStart.main(Native Method)

 

구글링에도 별로 MergeCursor 내용이 없내요    ^^;