单击另一个按钮时显示按钮

时间:2014-07-27 16:12:48

标签: android button

尝试了不同的解决方案,但应用程序不断崩溃 - 目前我有4个图像按钮,当点击3个不正确的按钮时,它们顶部出现一个十字,当点击正确的按钮时,它上面会出现一个勾号并且声音播放

这一切都很好,但是当我按下正确的按钮让用户继续下一个问题时,我正在努力的是显示一个按钮(上面有一个箭头)。 / p>

与我的其他按钮/刻度/十字架等一样,我已经在onCreate方法中声明了箭头....

  nextArrow = (Button) findViewById(R.id.nextArrow);

然后在我的onClickListener方法....

  case R.id.happybutton:
            tick.setVisibility(View.VISIBLE);
            nextArrow.setVisibility(View.VISIBLE);
            correct.start();

logcat的:


 07-27 17:46:28.493: E/AndroidRuntime(17030): FATAL EXCEPTION: main
07-27 17:46:28.493: E/AndroidRuntime(17030): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.Autism_App/com.example.Autism_App.Expressions}: java.lang.ClassCastException: android.widget.ImageButton cannot be cast to android.widget.Button
07-27 17:46:28.493: E/AndroidRuntime(17030):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2245)
07-27 17:46:28.493: E/AndroidRuntime(17030):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2295)
07-27 17:46:28.493: E/AndroidRuntime(17030):    at android.app.ActivityThread.access$700(ActivityThread.java:150)
07-27 17:46:28.493: E/AndroidRuntime(17030):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1280)
07-27 17:46:28.493: E/AndroidRuntime(17030):    at android.os.Handler.dispatchMessage(Handler.java:99)
07-27 17:46:28.493: E/AndroidRuntime(17030):    at android.os.Looper.loop(Looper.java:176)
07-27 17:46:28.493: E/AndroidRuntime(17030):    at android.app.ActivityThread.main(ActivityThread.java:5279)
07-27 17:46:28.493: E/AndroidRuntime(17030):    at java.lang.reflect.Method.invokeNative(Native Method)
07-27 17:46:28.493: E/AndroidRuntime(17030):    at java.lang.reflect.Method.invoke(Method.java:511)
07-27 17:46:28.493: E/AndroidRuntime(17030):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1102)
07-27 17:46:28.493: E/AndroidRuntime(17030):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:869)
07-27 17:46:28.493: E/AndroidRuntime(17030):    at dalvik.system.NativeStart.main(Native Method)
07-27 17:46:28.493: E/AndroidRuntime(17030): Caused by: java.lang.ClassCastException: android.widget.ImageButton cannot be cast to android.widget.Button
07-27 17:46:28.493: E/AndroidRuntime(17030):    at com.example.Autism_App.Expressions.onCreate(Expressions.java:36)
07-27 17:46:28.493: E/AndroidRuntime(17030):    at android.app.Activity.performCreate(Activity.java:5267)
07-27 17:46:28.493: E/AndroidRuntime(17030):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1097)
07-27 17:46:28.493: E/AndroidRuntime(17030):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2209)
07-27 17:46:28.493: E/AndroidRuntime(17030):    ... 11 more

当下一个或者两个nextArrow行都在我的代码中时会崩溃,但是当我发表评论时,它在其他地方工作得很好......有什么想法吗?

谢谢!

2 个答案:

答案 0 :(得分:0)

可能R.id.nextArrow没有夸大其词。检查nextArrow是否为null并确保您为包含下一个按钮的布局充气。

答案 1 :(得分:0)

  

引起:java.lang.ClassCastException:android.widget.ImageButton   无法转换为android.widget.Button

表示您有一个ImageButton,并将其转换为Button

 nextArrow = (Button) findViewById(R.id.nextArrow);

应该

 ImageButton nextArrow = (ImageButton) findViewById(R.id.nextArrow);