2013-05-27 149 views
0

我有我的课,它扩展了baseActivity,除了一个简单的onClick on textview之外,所有的工作都很好: - |Android,textview onclick崩溃

TextView labelName_view = (TextView) findViewById(R.id.labelName); 
labelName_view.setOnClickListener(new OnClickListener() { 
    public void onClick(View v) { 
     // animazione automatica al click 
     LinearLayout contenitore_cibo_l=(LinearLayout) findViewById(R.id.bottom_container); 
     LayoutParams lp = (LayoutParams) contenitore_cibo_l.getLayoutParams(); 
     System.out.println(lp.topMargin); 
     //contenitore_cibo_l.startAnimation(makeAnimation_ordini(400, 25)); 
    } 
}); 

当我点击,它与崩溃:

05-27 12:30:22.722: E/AndroidRuntime(2932): FATAL EXCEPTION: main 
05-27 12:30:22.722: E/AndroidRuntime(2932): java.lang.ClassCastException: android.widget.RelativeLayout$LayoutParams cannot be cast to android.app.ActionBar$LayoutParams 
05-27 12:30:22.722: E/AndroidRuntime(2932):  at com.web_pos.android.OrderActivity$4.onClick(OrderActivity.java:296) 
05-27 12:30:22.722: E/AndroidRuntime(2932):  at android.view.View.performClick(View.java:3511) 
05-27 12:30:22.722: E/AndroidRuntime(2932):  at android.view.View$PerformClick.run(View.java:14105) 
05-27 12:30:22.722: E/AndroidRuntime(2932):  at android.os.Handler.handleCallback(Handler.java:605) 
05-27 12:30:22.722: E/AndroidRuntime(2932):  at android.os.Handler.dispatchMessage(Handler.java:92) 
05-27 12:30:22.722: E/AndroidRuntime(2932):  at android.os.Looper.loop(Looper.java:137) 
05-27 12:30:22.722: E/AndroidRuntime(2932):  at android.app.ActivityThread.main(ActivityThread.java:4424) 
05-27 12:30:22.722: E/AndroidRuntime(2932):  at java.lang.reflect.Method.invokeNative(Native Method) 
05-27 12:30:22.722: E/AndroidRuntime(2932):  at java.lang.reflect.Method.invoke(Method.java:511) 
05-27 12:30:22.722: E/AndroidRuntime(2932):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784) 
05-27 12:30:22.722: E/AndroidRuntime(2932):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551) 
05-27 12:30:22.722: E/AndroidRuntime(2932):  at dalvik.system.NativeStart.main(Native Method) 
+0

您的logcat似乎缺少一些错误行...特别是那些指定程序崩溃的行。 – JosephGarrone

+0

您是否正在采用容器布局的布局参数? – UnderGround

+0

确保'LayoutParams'来自'LinearLayout'。改为使用'LinearLayout.LayoutParams'。 –

回答

2

问题是与你正在使用的LayoutParams类型。从日志看来,您使用的是android.app.ActionBar.LayoutParams。将其更改为android.widget.RelativeLayout.LayoutParams并且应该顺利运行。希望能帮助到你。

+0

是的,它的工作原理!希望它不涉及其他一些问题,但似乎没有 – Zak

+1

它不应该。我们必须按照Bhupendra下面正确指出的那样采用/导入容器布局的LayoutParams。 – Gagan

0

您需要更正您的导入语句的LayoutParams。

代替进口android.app.ActionBar.LayoutParams的,你应该导入android.widget.RelativeLayout.LayoutParams

1

你必须始终以您要更改布局容器布局的布局PARAM,假设我想改变线性布局中的按钮布局,所以我必须采取线性布局参数