So I’m working on a scrolling layout that has a couple header lines (pictures and whatnot) and a ViewPager. I’m using MergeAdapter because I want to use the Sticky List Headers library to make the ViewPager indicator tabs, which would ideally end up being a list item technically, stick to the top when the user scrolls. I’m doing everything just like the demo but when I go to run my code I get the error in my logcat:
01-07 00:02:19.009: W/dalvikvm(12044): threadid=1: thread exiting with uncaught exception (group=0x40e2d930)
01-07 00:02:19.063: E/AndroidRuntime(12044): FATAL EXCEPTION: main
01-07 00:02:19.063: E/AndroidRuntime(12044): java.lang.RuntimeException: You must override newView()!
01-07 00:02:19.063: E/AndroidRuntime(12044): at com.commonsware.cwac.sacklist.SackOfViewsAdapter.newView(SackOfViewsAdapter.java:175)
01-07 00:02:19.063: E/AndroidRuntime(12044): at com.commonsware.cwac.sacklist.SackOfViewsAdapter.getView(SackOfViewsAdapter.java:147)
01-07 00:02:19.063: E/AndroidRuntime(12044): at com.commonsware.cwac.merge.MergeAdapter.getView(MergeAdapter.java:271)
01-07 00:02:19.063: E/AndroidRuntime(12044): at android.widget.AbsListView.obtainView(AbsListView.java:2159)
01-07 00:02:19.063: E/AndroidRuntime(12044): at android.widget.ListView.makeAndAddView(ListView.java:1831)
01-07 00:02:19.063: E/AndroidRuntime(12044): at android.widget.ListView.fillDown(ListView.java:674)
01-07 00:02:19.063: E/AndroidRuntime(12044): at android.widget.ListView.fillFromTop(ListView.java:735)
01-07 00:02:19.063: E/AndroidRuntime(12044): at android.widget.ListView.layoutChildren(ListView.java:1652)
01-07 00:02:19.063: E/AndroidRuntime(12044): at android.widget.AbsListView.onLayout(AbsListView.java:1994)
01-07 00:02:19.063: E/AndroidRuntime(12044): at android.view.View.layout(View.java:14003)
01-07 00:02:19.063: E/AndroidRuntime(12044): at android.view.ViewGroup.layout(ViewGroup.java:4375)
01-07 00:02:19.063: E/AndroidRuntime(12044): at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
01-07 00:02:19.063: E/AndroidRuntime(12044): at android.view.View.layout(View.java:14003)
01-07 00:02:19.063: E/AndroidRuntime(12044): at android.view.ViewGroup.layout(ViewGroup.java:4375)
01-07 00:02:19.063: E/AndroidRuntime(12044): at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
01-07 00:02:19.063: E/AndroidRuntime(12044): at android.view.View.layout(View.java:14003)
01-07 00:02:19.063: E/AndroidRuntime(12044): at android.view.ViewGroup.layout(ViewGroup.java:4375)
01-07 00:02:19.063: E/AndroidRuntime(12044): at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
01-07 00:02:19.063: E/AndroidRuntime(12044): at android.view.View.layout(View.java:14003)
01-07 00:02:19.063: E/AndroidRuntime(12044): at android.view.ViewGroup.layout(ViewGroup.java:4375)
01-07 00:02:19.063: E/AndroidRuntime(12044): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1663)
01-07 00:02:19.063: E/AndroidRuntime(12044): at android.widget.LinearLayout.layoutVertical(LinearLayout.java:1521)
01-07 00:02:19.063: E/AndroidRuntime(12044): at android.widget.LinearLayout.onLayout(LinearLayout.java:1434)
01-07 00:02:19.063: E/AndroidRuntime(12044): at android.view.View.layout(View.java:14003)
01-07 00:02:19.063: E/AndroidRuntime(12044): at android.view.ViewGroup.layout(ViewGroup.java:4375)
01-07 00:02:19.063: E/AndroidRuntime(12044): at com.slidingmenu.lib.CustomViewAbove.onLayout(CustomViewAbove.java:849)
01-07 00:02:19.063: E/AndroidRuntime(12044): at android.view.View.layout(View.java:14003)
01-07 00:02:19.063: E/AndroidRuntime(12044): at android.view.ViewGroup.layout(ViewGroup.java:4375)
01-07 00:02:19.063: E/AndroidRuntime(12044): at android.widget.RelativeLayout.onLayout(RelativeLayout.java:985)
01-07 00:02:19.063: E/AndroidRuntime(12044): at android.view.View.layout(View.java:14003)
01-07 00:02:19.063: E/AndroidRuntime(12044): at android.view.ViewGroup.layout(ViewGroup.java:4375)
01-07 00:02:19.063: E/AndroidRuntime(12044): at android.widget.FrameLayout.onLayout(FrameLayout.java:448)
01-07 00:02:19.063: E/AndroidRuntime(12044): at android.view.View.layout(View.java:14003)
01-07 00:02:19.063: E/AndroidRuntime(12044): at android.view.ViewGroup.layout(ViewGroup.java:4375)
01-07 00:02:19.063: E/AndroidRuntime(12044): at android.view.ViewRootImpl.performLayout(ViewRootImpl.java:1892)
01-07 00:02:19.063: E/AndroidRuntime(12044): at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1711)
01-07 00:02:19.063: E/AndroidRuntime(12044): at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:989)
01-07 00:02:19.063: E/AndroidRuntime(12044): at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:4351)
01-07 00:02:19.063: E/AndroidRuntime(12044): at android.view.Choreographer$CallbackRecord.run(Choreographer.java:749)
01-07 00:02:19.063: E/AndroidRuntime(12044): at android.view.Choreographer.doCallbacks(Choreographer.java:562)
01-07 00:02:19.063: E/AndroidRuntime(12044): at android.view.Choreographer.doFrame(Choreographer.java:532)
01-07 00:02:19.063: E/AndroidRuntime(12044): at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:735)01-07 00:02:19.063: E/AndroidRuntime(12044): at android.os.Handler.handleCallback(Handler.java:725)
01-07 00:02:19.063: E/AndroidRuntime(12044): at android.os.Handler.dispatchMessage(Handler.java:92)
01-07 00:02:19.063: E/AndroidRuntime(12044): at android.os.Looper.loop(Looper.java:137)
01-07 00:02:19.063: E/AndroidRuntime(12044): at android.app.ActivityThread.main(ActivityThread.java:5191)
01-07 00:02:19.063: E/AndroidRuntime(12044): at java.lang.reflect.Method.invokeNative(Native Method)
01-07 00:02:19.063: E/AndroidRuntime(12044): at java.lang.reflect.Method.invoke(Method.java:511)
01-07 00:02:19.063: E/AndroidRuntime(12044): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795)
01-07 00:02:19.063: E/AndroidRuntime(12044): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:562)
01-07 00:02:19.063: E/AndroidRuntime(12044): at dalvik.system.NativeStart.main(Native Method)
I have the jar files for MergeAdapter and the SackOfViewsAdapter so I can’t figure out what’s going on. I even get the same error if I comment out the ViewPager stuff.
Is there a way you have to structure your XML if you want to add XML elements via addView, addViews, etc.?
Somehow, either
MergeAdapterthinks there are more things in theSackOfViewsAdapterthan there actually are, or you have anullentry in the list of views that you handed toMergeAdapteraddViews()(or a singlenullViewyou added viaaddView(). My money is on thenullscenario.You should be able to determine whether it is the
nullentry problem yourself, by examining what you are supplying as views toMergeAdapter.If you cannot track down the problem, and if you can create a sample project the reproduces the error, file an issue with a pointer to the source code for the sample, and I’ll take a look at it.