2012-07-23 87 views
2

我正在使用android 2.1中的片段,爲此我使用supportV4 jar。我在一個活動中有兩個片段,一個用於新數據插入,另一個用於顯示列表,我使用ResourceCursorAdapter在片段中顯示來自光標的所有數據,但是當我從該活動移動到另一個活動時,我正在獲取強制關閉它,會產生像這樣的錯誤java.lang.IllegalStateException:只有當光標有效時纔會調用這個函數

07-23 18:26:13.028: E/AndroidRuntime(25309): java.lang.IllegalStateException: this should only be called when the cursor is valid 
07-23 18:26:13.028: E/AndroidRuntime(25309): at android.support.v4.widget.CursorAdapter.getView(CursorAdapter.java:245) 
07-23 18:26:13.028: E/AndroidRuntime(25309): at android.widget.AbsListView.obtainView(AbsListView.java:1315) 
07-23 18:26:13.028: E/AndroidRuntime(25309): at android.widget.ListView.measureHeightOfChildren(ListView.java:1198) 
07-23 18:26:13.028: E/AndroidRuntime(25309): at android.widget.ListView.onMeasure(ListView.java:1109) 
07-23 18:26:13.028: E/AndroidRuntime(25309): at android.view.View.measure(View.java:8171) 
07-23 18:26:13.028: E/AndroidRuntime(25309): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132) 
07-23 18:26:13.028: E/AndroidRuntime(25309): at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1012) 
07-23 18:26:13.028: E/AndroidRuntime(25309): at android.widget.LinearLayout.measureVertical(LinearLayout.java:381) 
07-23 18:26:13.028: E/AndroidRuntime(25309): at android.widget.LinearLayout.onMeasure(LinearLayout.java:304) 
07-23 18:26:13.028: E/AndroidRuntime(25309): at android.view.View.measure(View.java:8171) 
07-23 18:26:13.028: E/AndroidRuntime(25309): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132) 
07-23 18:26:13.028: E/AndroidRuntime(25309): at android.widget.FrameLayout.onMeasure(FrameLayout.java:245) 
07-23 18:26:13.028: E/AndroidRuntime(25309): at android.view.View.measure(View.java:8171) 
07-23 18:26:13.028: E/AndroidRuntime(25309): at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1029) 
07-23 18:26:13.028: E/AndroidRuntime(25309): at android.view.View.measure(View.java:8171) 
07-23 18:26:13.028: E/AndroidRuntime(25309): at android.widget.LinearLayout.measureVertical(LinearLayout.java:526) 
07-23 18:26:13.028: E/AndroidRuntime(25309): at android.widget.LinearLayout.onMeasure(LinearLayout.java:304) 
07-23 18:26:13.028: E/AndroidRuntime(25309): at android.view.View.measure(View.java:8171) 
07-23 18:26:13.028: E/AndroidRuntime(25309): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132) 
07-23 18:26:13.028: E/AndroidRuntime(25309): at android.widget.FrameLayout.onMeasure(FrameLayout.java:245) 
07-23 18:26:13.028: E/AndroidRuntime(25309): at android.view.View.measure(View.java:8171) 
07-23 18:26:13.028: E/AndroidRuntime(25309): at android.widget.LinearLayout.measureVertical(LinearLayout.java:526) 
07-23 18:26:13.028: E/AndroidRuntime(25309): at android.widget.LinearLayout.onMeasure(LinearLayout.java:304) 
07-23 18:26:13.028: E/AndroidRuntime(25309): at android.view.View.measure(View.java:8171) 
07-23 18:26:13.028: E/AndroidRuntime(25309): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132) 
07-23 18:26:13.028: E/AndroidRuntime(25309): at android.widget.FrameLayout.onMeasure(FrameLayout.java:245) 
07-23 18:26:13.028: E/AndroidRuntime(25309): at android.view.View.measure(View.java:8171) 
07-23 18:26:13.028: E/AndroidRuntime(25309): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3132) 
07-23 18:26:13.028: E/AndroidRuntime(25309): at android.widget.FrameLayout.onMeasure(FrameLayout.java:245) 
07-23 18:26:13.028: E/AndroidRuntime(25309): at android.view.View.measure(View.java:8171) 
07-23 18:26:13.028: E/AndroidRuntime(25309): at android.view.ViewRoot.performTraversals(ViewRoot.java:801) 
07-23 18:26:13.028: E/AndroidRuntime(25309): at android.view.ViewRoot.handleMessage(ViewRoot.java:1727) 
07-23 18:26:13.028: E/AndroidRuntime(25309): at android.os.Handler.dispatchMessage(Handler.java:99) 
07-23 18:26:13.028: E/AndroidRuntime(25309): at android.os.Looper.loop(Looper.java:123) 
07-23 18:26:13.028: E/AndroidRuntime(25309): at android.app.ActivityThread.main(ActivityThread.java:4627) 
07-23 18:26:13.028: E/AndroidRuntime(25309): at java.lang.reflect.Method.invokeNative(Native Method) 
07-23 18:26:13.028: E/AndroidRuntime(25309): at java.lang.reflect.Method.invoke(Method.java:521) 
07-23 18:26:13.028: E/AndroidRuntime(25309): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
07-23 18:26:13.028: E/AndroidRuntime(25309): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
07-23 18:26:13.028: E/AndroidRuntime(25309): at dalvik.system.NativeStart.main(Native Method) 
+0

[你檢查過這個嗎?](http://codereview.stackexchange.com/a/2201) – 2012-07-23 13:12:06

+0

在啓動新的活動之前,你有任何特定的操作在遊標適配器下嗎?實際上,這個異常可能是由以下原因引起的:swapCursor(null),無效的請求(requery被depricated)(來自支持庫的代碼)。 – sandrstar 2012-07-23 13:15:13

+0

@Override public void onResume(){ super.onResume(); Log.d(「ViewEntries」,「On resume resume」); 如果(光標= NULL && cursor.getCount()> 0!){ \t \t \t entriesAdapter =新EntriesAdapter(getActivity(),R.layout.row_entries_activity,光標); \t \t \t lst.setAdapter(entriesAdapter); \t \t} \t}我從這段代碼中刪除註釋時出錯。 – Krutik 2012-07-24 04:20:46

回答

0

確保您在投影中包含_ID列。這是遊標適配器工作所必需的。

相關問題