- 05-09 10:51:21.522: ERROR/AndroidRuntime(4425): java.lang.ClassCastException: android.widget.LinearLayout$LayoutParams
- setListAdapter(new BaseAdapter() {
- @Override
- public View getView(int position, View convertView, ViewGroup parent) {
- LinearLayout lnLayout = new LinearLayout(ListActivityDemo02.this);
- // lnLayout.setLayoutParams(new LinearLayout.LayoutParams(
- // ViewGroup.LayoutParams.FILL_PARENT, android.R.attr.listPreferredItemHeight));
- lnLayout.setOrientation(LinearLayout.VERTICAL);
- ViewGroup.LayoutParams tvLayout = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.FILL_PARENT,
- ViewGroup.LayoutParams.WRAP_CONTENT);
- TextView tv = new TextView(ListActivityDemo02.this);
- tv.setText("hello world");
- tv.setLayoutParams(tvLayout);
- lnLayout.addView(tv);
- TextView tv2 = new TextView(ListActivityDemo02.this);
- tv2.setText("hello world111111111");
- tv2.setLayoutParams(tvLayout);
- lnLayout.addView(tv2);
- return lnLayout;
- }
- @Override
- public long getItemId(int position) {
- return 1;
- }
- @Override
- public Object getItem(int position) {
- return null;
- }
- @Override
- public int getCount() {
- return 1;
- }
- });
如果对外层的 Layout设置属性的话,
lnLayout.setLayoutParams(new LinearLayout.LayoutParams(
ViewGroup.LayoutParams.FILL_PARENT, android.R.attr.listPreferredItemHeight));
则会报错。。。如上的错误信息,,具体的如下
解决办法就是取消对其中的设置
- 05-05 18:42:22.331: ERROR/AndroidRuntime(5833): ERROR: thread attach failed
- 05-05 18:42:23.581: ERROR/AndroidRuntime(5848): Uncaught handler: thread main exiting due to uncaught exception
- 05-05 18:42:23.601: ERROR/AndroidRuntime(5848): java.lang.ClassCastException: android.widget.LinearLayout$LayoutParams
- 05-05 18:42:23.601: ERROR/AndroidRuntime(5848): at android.widget.ListView.setupChild(ListView.java:1702)
- 05-05 18:42:23.601: ERROR/AndroidRuntime(5848): at android.widget.ListView.makeAndAddView(ListView.java:1671)
- 05-05 18:42:23.601: ERROR/AndroidRuntime(5848): at android.widget.ListView.fillDown(ListView.java:637)
- 05-05 18:42:23.601: ERROR/AndroidRuntime(5848): at android.widget.ListView.fillFromTop(ListView.java:694)
- 05-05 18:42:23.601: ERROR/AndroidRuntime(5848): at android.widget.ListView.layoutChildren(ListView.java:1521)
- 05-05 18:42:23.601: ERROR/AndroidRuntime(5848): at android.widget.AbsListView.onLayout(AbsListView.java:1113)
- 05-05 18:42:23.601: ERROR/AndroidRuntime(5848): at android.view.View.layout(View.java:6834)
- 05-05 18:42:23.601: ERROR/AndroidRuntime(5848): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1119)
- 05-05 18:42:23.601: ERROR/AndroidRuntime(5848): at android.widget.LinearLayout.layoutVertical(LinearLayout.java:998)
- 05-05 18:42:23.601: ERROR/AndroidRuntime(5848): at android.widget.LinearLayout.onLayout(LinearLayout.java:918)
- 05-05 18:42:23.601: ERROR/AndroidRuntime(5848): at android.view.View.layout(View.java:6834)
- 05-05 18:42:23.601: ERROR/AndroidRuntime(5848): at android.widget.RelativeLayout.onLayout(RelativeLayout.java:900)
- 05-05 18:42:23.601: ERROR/AndroidRuntime(5848): at android.view.View.layout(View.java:6834)
- 05-05 18:42:23.601: ERROR/AndroidRuntime(5848): at android.widget.FrameLayout.onLayout(FrameLayout.java:333)
- 05-05 18:42:23.601: ERROR/AndroidRuntime(5848): at android.view.View.layout(View.java:6834)
- 05-05 18:42:23.601: ERROR/AndroidRuntime(5848): at android.widget.LinearLayout.setChildFrame(LinearLayout.java:1119)
- 05-05 18:42:23.601: ERROR/AndroidRuntime(5848): at android.widget.LinearLayout.layoutVertical(LinearLayout.java:998)
- 05-05 18:42:23.601: ERROR/AndroidRuntime(5848): at android.widget.LinearLayout.onLayout(LinearLayout.java:918)
- 05-05 18:42:23.601: ERROR/AndroidRuntime(5848): at android.view.View.layout(View.java:6834)
- 05-05 18:42:23.601: ERROR/AndroidRuntime(5848): at android.widget.FrameLayout.onLayout(FrameLayout.java:333)
- 05-05 18:42:23.601: ERROR/AndroidRuntime(5848): at android.view.View.layout(View.java:6834)
- 05-05 18:42:23.601: ERROR/AndroidRuntime(5848): at android.view.ViewRoot.performTraversals(ViewRoot.java:1016)
- 05-05 18:42:23.601: ERROR/AndroidRuntime(5848): at android.view.ViewRoot.handleMessage(ViewRoot.java:1666)
- 05-05 18:42:23.601: ERROR/AndroidRuntime(5848): at android.os.Handler.dispatchMessage(Handler.java:99)
- 05-05 18:42:23.601: ERROR/AndroidRuntime(5848): at android.os.Looper.loop(Looper.java:123)
- 05-05 18:42:23.601: ERROR/AndroidRuntime(5848): at android.app.ActivityThread.main(ActivityThread.java:4603)
- 05-05 18:42:23.601: ERROR/AndroidRuntime(5848): at java.lang.reflect.Method.invokeNative(Native Method)
- 05-05 18:42:23.601: ERROR/AndroidRuntime(5848): at java.lang.reflect.Method.invoke(Method.java:521)
- 05-05 18:42:23.601: ERROR/AndroidRuntime(5848): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
- 05-05 18:42:23.601: ERROR/AndroidRuntime(5848): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
- 05-05 18:42:23.601: ERROR/AndroidRuntime(5848): at dalvik.system.NativeStart.main(Native Method)
- 05-05 18:42:25.341: ERROR/PackageInstallationReceiver(146): Remove /data/local/tmp/com.mmb.shop.apk Fail!
- 05-05 18:42:34.381: ERROR/ActivityManager(88): fail to set top app changed!
看到http://hi.baidu.com/ljlkings/blog/item/86ed2401029b4efd08fa9303.html
受到了一点启发 :
So basically, if you are adding a view to another, you MUST set the LayoutParams of the view to the LayoutParams type that the parent uses, or you will get a runtime error.
就是說你要設置此layoutparameters須對父對象佈局設定,最上層的layout不需設定此項。 |