I do not see where you are associating a LinearLayout.LayoutParams with the LinearLayout's children.
On Wed, Oct 13, 2010 at 8:59 PM, Bret Foreman <[email protected]> wrote: > Well, a quick experiment shows that there might be a problem with a > LinearLayout as the view. Here's the code for getChildView. The > database stuff is tried and true. In my test case there are no level 3 > items so just one TextView is created inside the LinearLayout. > > �...@override > public View getChildView(int appIndex , int tableIndex > , boolean > isLastChild, View convertView, ViewGroup parent) { > NameAndIdPair table = (NameAndIdPair) > getChild( appIndex , > tableIndex ); > SQLiteObjectListDbAdapter reportDb = null; > Cursor reports = null; > if( convertView == null ) { > convertView = new LinearLayout( > ThreeLevelListActivity.this ); > } > else { > ((LinearLayout) > convertView).removeAllViews(); > } > try { > TextView tv; > reportDb = > new > SQLiteObjectListDbAdapter(ThreeLevelListActivity.this , > prefs.getPrefString(IPCUtils.usernameKey) , table ); > tv = new > TextView(ThreeLevelListActivity.this); > tv.setText(table.name); > ((LinearLayout) > convertView).addView(tv); > reports = reportDb.getAllRecords(null); > for( int i = 0 ; i < > reports.getCount() ; i++ ){ > NameAndIdPair report = new > NameAndIdPair( > reports.getString(reports.getColumnIndex(SQLiteObjectListDbAdapter.dbColObjectName)) > , > > reports.getString(reports.getColumnIndex(SQLiteObjectListDbAdapter.dbColObjectId))); > tv = new > TextView(ThreeLevelListActivity.this); > tv.setText(report.name); > ((LinearLayout) > convertView).addView(tv); > } > } catch (SQLException e) { > // TODO Auto-generated catch block > e.printStackTrace(); > } catch (MissingPrefKeyException e) { > // TODO Auto-generated catch block > e.printStackTrace(); > } catch (IOException e) { > // TODO Auto-generated catch block > e.printStackTrace(); > } > finally { > if( reportDb!= null ) { > reportDb.close(); > } > if( reports != null ) { > reports.close(); > } > } > return null; > } > > This results in the following null pointer exception. I'm guessing > that I need to set up more parameters in the LinearLayout but I'm not > sure what. I should probably load it from a resource rather than > create it new on the spot. I'm not sure all the defaults are > appropriate for this experiment. Any comments? > > 10-13 17:49:13.642: ERROR/AndroidRuntime(16570): FATAL EXCEPTION: main > 10-13 17:49:13.642: ERROR/AndroidRuntime(16570): > java.lang.NullPointerException > 10-13 17:49:13.642: ERROR/AndroidRuntime(16570): at > android.widget.AbsListView.obtainView(AbsListView.java:1317) > 10-13 17:49:13.642: ERROR/AndroidRuntime(16570): at > android.widget.ListView.makeAndAddView(ListView.java:1727) > 10-13 17:49:13.642: ERROR/AndroidRuntime(16570): at > android.widget.ListView.fillDown(ListView.java:652) > 10-13 17:49:13.642: ERROR/AndroidRuntime(16570): at > android.widget.ListView.fillSpecific(ListView.java:1284) > 10-13 17:49:13.642: ERROR/AndroidRuntime(16570): at > android.widget.ListView.layoutChildren(ListView.java:1558) > 10-13 17:49:13.642: ERROR/AndroidRuntime(16570): at > android.widget.AbsListView.onLayout(AbsListView.java:1147) > 10-13 17:49:13.642: ERROR/AndroidRuntime(16570): at > android.view.View.layout(View.java:7035) > 10-13 17:49:13.642: ERROR/AndroidRuntime(16570): at > android.widget.LinearLayout.setChildFrame(LinearLayout.java:1249) > 10-13 17:49:13.642: ERROR/AndroidRuntime(16570): at > android.widget.LinearLayout.layoutVertical(LinearLayout.java:1125) > 10-13 17:49:13.642: ERROR/AndroidRuntime(16570): at > android.widget.LinearLayout.onLayout(LinearLayout.java:1042) > 10-13 17:49:13.642: ERROR/AndroidRuntime(16570): at > android.view.View.layout(View.java:7035) > 10-13 17:49:13.642: ERROR/AndroidRuntime(16570): at > android.widget.FrameLayout.onLayout(FrameLayout.java:333) > 10-13 17:49:13.642: ERROR/AndroidRuntime(16570): at > android.view.View.layout(View.java:7035) > 10-13 17:49:13.642: ERROR/AndroidRuntime(16570): at > android.widget.LinearLayout.setChildFrame(LinearLayout.java:1249) > 10-13 17:49:13.642: ERROR/AndroidRuntime(16570): at > android.widget.LinearLayout.layoutVertical(LinearLayout.java:1125) > 10-13 17:49:13.642: ERROR/AndroidRuntime(16570): at > android.widget.LinearLayout.onLayout(LinearLayout.java:1042) > 10-13 17:49:13.642: ERROR/AndroidRuntime(16570): at > android.view.View.layout(View.java:7035) > 10-13 17:49:13.642: ERROR/AndroidRuntime(16570): at > android.widget.FrameLayout.onLayout(FrameLayout.java:333) > 10-13 17:49:13.642: ERROR/AndroidRuntime(16570): at > android.view.View.layout(View.java:7035) > 10-13 17:49:13.642: ERROR/AndroidRuntime(16570): at > android.view.ViewRoot.performTraversals(ViewRoot.java:1045) > 10-13 17:49:13.642: ERROR/AndroidRuntime(16570): at > android.view.ViewRoot.handleMessage(ViewRoot.java:1727) > 10-13 17:49:13.642: ERROR/AndroidRuntime(16570): at > android.os.Handler.dispatchMessage(Handler.java:99) > 10-13 17:49:13.642: ERROR/AndroidRuntime(16570): at > android.os.Looper.loop(Looper.java:123) > 10-13 17:49:13.642: ERROR/AndroidRuntime(16570): at > android.app.ActivityThread.main(ActivityThread.java:4627) > 10-13 17:49:13.642: ERROR/AndroidRuntime(16570): at > java.lang.reflect.Method.invokeNative(Native Method) > 10-13 17:49:13.642: ERROR/AndroidRuntime(16570): at > java.lang.reflect.Method.invoke(Method.java:521) > 10-13 17:49:13.642: ERROR/AndroidRuntime(16570): at > com.android.internal.os.ZygoteInit > $MethodAndArgsCaller.run(ZygoteInit.java:868) > 10-13 17:49:13.642: ERROR/AndroidRuntime(16570): at > com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) > 10-13 17:49:13.642: ERROR/AndroidRuntime(16570): at > dalvik.system.NativeStart.main(Native Method) > > -- > You received this message because you are subscribed to the Google > Groups "Android Developers" group. > To post to this group, send email to [email protected] > To unsubscribe from this group, send email to > [email protected] > For more options, visit this group at > http://groups.google.com/group/android-developers?hl=en > -- Mark Murphy (a Commons Guy) http://commonsware.com | http://github.com/commonsguy http://commonsware.com/blog | http://twitter.com/commonsguy _The Busy Coder's Guide to Android Development_ Version 3.1 Available! -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en

