記錄一下犯的這個小錯誤,在寫程序的時候,需要動態的去控制一個控件的高度時,設置寬和高出現異常。截取網上一段代碼
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