2013-05-27 2 views
0

У меня есть класс, который расширяет baseActivity, все работает хорошо, за исключением простого onClick на текстовом изображении: - |Android, textview onclick crash

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

В вашем логарифме, кажется, отсутствуют некоторые строки ошибок ... В частности, те, которые указывают, на какую строку врезалась программа. – JosephGarrone

+0

ли вы используете макет макета контейнера или нет ??? – UnderGround

+0

Убедитесь, что 'LayoutParams' находятся в' LinearLayout'. Вместо этого используйте 'LinearLayout.LayoutParams'. –

ответ

2

Проблема с типом LayoutParams вы используете. Из журналов видно, что вы используете android.app.ActionBar.LayoutParams. Измените его на android.widget.RelativeLayout.LayoutParams, и он должен работать плавно. Надеюсь, поможет.

+0

да, это работает! надеюсь, что это не связано с какой-то другой проблемой, но, похоже, нет – Zak

+1

Не следует. Нам нужно взять/импортировать LayoutParams макета контейнера, как показано на рисунке Bhupendra ниже. – Gagan

0

Вам необходимо исправить свой оператор импорта для LayoutParams.

Вместо импорта android.app.ActionBar.LayoutParams, вы должны импортировать android.widget.RelativeLayout.LayoutParams

1

Вы должны всегда принимать макет параметров макета контейнера, для которого вы хотите изменить макет, предположим, что я хочу изменить расположение кнопок, которое находится в линейном макете, поэтому мне нужно взять параметры линейного макета.