记录一下犯的这个小错误,在写程序的时候,需要动态的去控制一个控件的高度时,设置宽和高出现异常。截取网上一段代码
TextView txt=new TextView(productlist.this);
txt.setText(author.get(groupPosition));
TextView txt1=new TextView(productlist.this);
txt1.setText(price.get(groupPosition));
txt.setLayoutParams(new LayoutParams(70, LayoutParams.WRAP_CONTENT));
txt1.setLayoutParams(new LayoutParams(70,LayoutParams.WRAP_CONTENT));
LinearLayout ll=new LinearLayout(productlist.this);
ll.setOrientation(LinearLayout.HORIZONTAL);
ll.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
// ll.setGravity(Gravity.CENTER);
ll.addView(txt);
ll.addView(txt1);
return ll;
在设置布局参数的时候会出现类似这样的问题 ClassCastException android.view.viewgroup.$layoutParam,这里需要确保导入正确的包的信息,针对的是LayoutParams这个值,在写程序的时候,最好使用new FrameLayout.LayoutParams,new LinearLayout.LayoutParams,这种写法免得出现包对应出错的问题。前边值( FrameLayout, LinearLayout)是根据你所要设置的控件的父布局决定的。
在stackoverflow也给出的一些说明
http://stackoverflow.com/questions/7547957/classcastexception-android-view-viewgroup-layoutparam
http://stackoverflow.com/questions/8226676/java-lang-classcastexception-android-view-viewgrouplayoutparams-without-layout