如何在另一个活动禁用按钮? [英] How to disable button in another activity?

查看:178
本文介绍了如何在另一个活动禁用按钮?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个游戏活动,它结束时,它进入主菜单,现在我需要禁用它开始刚刚结束比赛的按钮。让我们把我的游戏类classGame和我的菜单classMenu。我想:

I have a game activity and when it ends it goes to main menu and now I need to disable the button which starts the game that just ended. Let's call my game class classGame and my menu classMenu. I tried:

在我的classGame:

in my classGame:

classMenu obj = new classMenu();

然后在同一个类时,时间是对的,我呼吁:

And then in the same class when the time is right I call:

obj.myButtonToBeDisabled.setEnabled(false);

但我得到的地方我创造了我的obj一旦我的菜单活动开始行stactOverflow错误。如何做到这一点?

But I get stactOverflow errors on line where I created my obj as soon my menu activity starts. How to do this?

编辑:
我也在我gameClass尝试这样:

I've also tried this in my gameClass:

public void disableButton(){
        button.setEnabled(false);
    }

,然后调用它:

obj.disableButton

但同样的错误。

LogCat中:

04-06 16:30:48.709: I/dalvikvm(25015): threadid=1: stack overflow on call to Ljava/lang/VMThread;.currentThread:L
04-06 16:30:48.709: I/dalvikvm(25015):   method requires 0+20+0=20 bytes, fp is 0x4214d300 (0 left)
04-06 16:30:48.709: I/dalvikvm(25015):   expanding stack end (0x4214d300 to 0x4214d000)
04-06 16:30:48.769: I/dalvikvm(25015): Shrank stack (to 0x4214d300, curFrame is 0x4214fcb0)
04-06 16:30:48.899: D/AndroidRuntime(25015): Shutting down VM
04-06 16:30:48.899: W/dalvikvm(25015): threadid=1: thread exiting with uncaught exception (group=0x40018560)
04-06 16:30:49.369: D/dalvikvm(25015): GC_CONCURRENT freed 325K, 50% free 2850K/5639K, external 0K/0K, paused 5ms+24ms
04-06 16:30:49.459: E/AndroidRuntime(25015): FATAL EXCEPTION: main
04-06 16:30:49.459: E/AndroidRuntime(25015): java.lang.StackOverflowError
04-06 16:30:49.459: E/AndroidRuntime(25015):    at java.lang.Thread.currentThread(Thread.)
04-06 16:30:49.459: E/AndroidRuntime(25015):    at java.lang.ThreadLocal.get(ThreadLocal.java:59)
04-06 16:30:49.459: E/AndroidRuntime(25015):    at android.os.Looper.myLooper(Looper.)
04-06 16:30:49.459: E/AndroidRuntime(25015):    at android.os.Handler.<init>(Handler.)
04-06 16:30:49.459: E/AndroidRuntime(25015):    at android.app.Activity.<init>(Activity.)
04-06 16:30:49.459: E/AndroidRuntime(25015):    at rs.androidaplikacije.toplo_hladno.Izbor.<init>(Izbor.java:17)
04-06 16:30:49.459: E/AndroidRuntime(25015):    at rs.androidaplikacije.toplo_hladno.Asocijacije.<init>(Asocijacije.java:32)
04-06 16:30:49.459: E/AndroidRuntime(25015):    at rs.androidaplikacije.toplo_hladno.Izbor.<init>(Izbor.java:19)
04-06 16:30:49.459: E/AndroidRuntime(25015):    at rs.androidaplikacije.toplo_hladno.Asocijacije.<init>(Asocijacije.java:32)
04-06 16:30:49.459: E/AndroidRuntime(25015):    at rs.androidaplikacije.toplo_hladno.Izbor.<init>(Izbor.java:19)
04-06 16:30:49.459: E/AndroidRuntime(25015):    at rs.androidaplikacije.toplo_hladno.Asocijacije.<init>(Asocijacije.java:32)
04-06 16:30:49.459: E/AndroidRuntime(25015):    at rs.androidaplikacije.toplo_hladno.Izbor.<init>(Izbor.java:19)
04-06 16:30:49.459: E/AndroidRuntime(25015):    at rs.androidaplikacije.toplo_hladno.Asocijacije.<init>(Asocijacije.java:32)
04-06 16:30:49.459: E/AndroidRuntime(25015):    at rs.androidaplikacije.toplo_hladno.Izbor.<init>(Izbor.java:19)
04-06 16:30:49.459: E/AndroidRuntime(25015):    at rs.androidaplikacije.toplo_hladno.Asocijacije.<init>(Asocijacije.java:32)
04-06 16:30:49.459: E/AndroidRuntime(25015):    at rs.androidaplikacije.toplo_hladno.Izbor.<init>(Izbor.java:19)
04-06 16:30:49.459: E/AndroidRuntime(25015):    at rs.androidaplikacije.toplo_hladno.Asocijacije.<init>(Asocijacije.java:32)
04-06 16:30:49.459: E/AndroidRuntime(25015):    at rs.androidaplikacije.toplo_hladno.Izbor.<init>(Izbor.java:19)
04-06 16:30:49.459: E/AndroidRuntime(25015):    at rs.androidaplikacije.toplo_hladno.Asocijacije.<init>(Asocijacije.java:32)
04-06 16:30:49.459: E/AndroidRuntime(25015):    at rs.androidaplikacije.toplo_hladno.Izbor.<init>(Izbor.java:19)
04-06 16:30:49.459: E/AndroidRuntime(25015):    at rs.androidaplikacije.toplo_hladno.Asocijacije.<init>(Asocijacije.java:32)
04-06 16:30:49.459: E/AndroidRuntime(25015):    at rs.androidaplikacije.toplo_hladno.Izbor.<init>(Izbor.java:19)
04-06 16:30:49.459: E/AndroidRuntime(25015):    at rs.androidaplikacije.toplo_hladno.Asocijacije.<init>(Asocijacije.java:32)
04-06 16:30:49.459: E/AndroidRuntime(25015):    at rs.androidaplikacije.toplo_hladno.Izbor.<init>(Izbor.java:19)
04-06 16:30:49.459: E/AndroidRuntime(25015):    at rs.androidaplikacije.toplo_hladno.Asocijacije.<init>(Asocijacije.java:32)
04-06 16:30:49.459: E/AndroidRuntime(25015):    at rs.androidaplikacije.toplo_hladno.Izbor.<init>(Izbor.java:19)
04-06 16:30:49.459: E/AndroidRuntime(25015):    at rs.androidaplikacije.toplo_hladno.Asocijacije.<init>(Asocijacije.java:32)
04-06 16:30:49.459: E/AndroidRuntime(25015):    at rs.androidaplikacije.toplo_hladno.Izbor.<init>(Izbor.java:19)
04-06 16:30:49.459: E/AndroidRuntime(25015):    at rs.androidaplikacije.toplo_hladno.Asocijacije.<init>(Asocijacije.java:32)
04-06 16:30:49.459: E/AndroidRuntime(25015):    at rs.androidaplikacije.toplo_hladno.Izbor.<init>(Izbor.java:19)
04-06 16:30:49.459: E/AndroidRuntime(25015):    at rs.androidaplikacije.toplo_hladno.Asocijacije.<init>(Asocijacije.java:32)
04-06 16:30:49.459: E/AndroidRuntime(25015):    at rs.androidaplikacije.toplo_hladno.Izbor.<init>(Izbor.java:19)
04-06 16:30:49.459: E/AndroidRuntime(25015):    at rs.androidaplikacije.toplo_hladno.Asocijacije.<init>(Asocijacije.java:32)
04-06 16:30:49.459: E/AndroidRuntime(25015):    at rs.androidaplikacije.toplo_hladno.Izbor.<init>(Izbor.java:19)
04-06 16:30:49.459: E/AndroidRuntime(25015):    at rs.androidaplikacije.toplo_hladno.Asocijacije.<init>(Asocijacije.java:32)
04-06 16:30:49.459: E/AndroidRuntime(25015):    at rs.androidaplikacije.toplo_hladno.Izbor.<init>(Izbor.java:19)
04-06 16:30:49.459: E/AndroidRuntime(25015):    at rs.androidaplikacije.toplo_hladno.Asocijacije.<init>(Asocijacije.java:32)
04-06 16:30:49.459: E/AndroidRuntime(25015):    at rs.androidaplikacije.toplo_hladno.Izbor.<init>(Izbor.java:19)
04-06 16:30:49.459: E/AndroidRuntime(25015):    at rs.androidaplikacije.toplo_hladno.Asocijacije.<init>(Asocijacije.java:32)
04-06 16:30:49.459: E/AndroidRuntime(25015):    at rs.androidaplikacije.toplo_hladno.Izbor.<init>(Izbor.java:19)
04-06 16:30:49.459: E/AndroidRuntime(25015):    at rs.androidaplikacije.toplo_hladno.Asocijacije.<init>(Asocijacije.java:32)
04-06 16:30:49.459: E/AndroidRuntime(25015):    at rs.androidaplikacije.toplo_hladno.Izbor.<init>(Izbor.java:19)
04-06 16:30:49.459: E/AndroidRuntime(25015):    at rs.androidaplikacije.toplo_hladno.Asocijacije.<init>(Asocijacije.java:32)
04-06 16:30:49.459: E/AndroidRuntime(25015):    at rs.androidaplikacije.toplo_hladno.Izbor.<init>(Izbor.java:19)
04-06 16:30:49.459: E/AndroidRuntime(25015):    at rs.androidaplikacije.toplo_hladno.Asocijacije.<init>(Asocijacije.java:32)
04-06 16:30:49.459: E/AndroidRuntime(25015):    at rs.androidaplikacije.toplo_hladno.Izbor.<init>(Izbor.java:19)
04-06 16:30:49.459: E/AndroidRuntime(25015):    at rs.androidaplikacije.toplo_hladno.Asocijacije.<init>(Asocijacije.java:32)
04-06 16:30:49.459: E/AndroidRuntime(25015):    at rs.androidaplikacije.toplo_hladno.Izbor.<init>(Izbor.java:19)
04-06 16:30:49.459: E/AndroidRuntime(25015):    at rs.androidaplikacije.toplo_hladno.Asocijacije.<init>(Asocijacije.java:32)
04-06 16:30:49.459: E/AndroidRuntime(25015):    at rs.androidaplikacije.toplo_hladno.Izbor.<init>(Izbor.java:19)
04-06 16:30:49.459: E/AndroidRuntime(25015):    at rs.androidaplikacije.toplo_hladno.Asocijacije.<init>(Asocijacije.java:32)
04-06 16:30:49.459: E/AndroidRuntime(25015):    at rs.androidaplikacije.toplo_hladno.Izbor.<init>(Izbor.java:19)
04-06 16:30:49.459: E/AndroidRuntime(25015):    at rs.androidaplikacije.toplo_hladno.Asocijacije.<init>(Asocijacije.java:32)
04-06 16:30:49.459: E/AndroidRuntime(25015):    at rs.androidaplikacije.toplo_hladno.Izbor.<init>(Izbor.java:19)
04-06 16:30:49.459: E/AndroidRuntime(25015):    at rs.androidaplikacije.toplo_hladno.Asocijacije.<init>(Asocijacije.java:32)
04-06 16:30:49.459: E/AndroidRuntime(25015):    at rs.androidaplikacije.toplo_hladno.Izbor.<init>(Izbor.java:19)
04-06 16:30:49.459: E/AndroidRuntime(25015):    at rs.androidaplikacije.toplo_hladno.Asocijacije.<init>(Asocijacije.java:32)
04-06 16:30:49.459: E/AndroidRuntime(25015):    at rs.android
04-06 16:30:49.659: D/dalvikvm(25015): GC_CONCURRENT freed 522K, 51% free 2899K/5895K, external 0K/0K, paused 7ms+5ms

Asocijacije是我gameClass,并Izbor我menuClass。

Asocijacije is my gameClass, and Izbor in my menuClass.

推荐答案

您不需要从你的游戏中调用任何东西。如果你的菜单是开始摆在首位的游戏之一,它可以在游戏中的活动已完成得到通知。

You don't need to call anything from within your game. If your menu is the one that started the game in the first place, it can get notified when the game's Activity has finished.

startActivityForResult 这样开始你的游戏:

Intent intent = new Intent ();
intent.setClassName ("com.your.package.name", "com.your.package.name.YourGameActivity");
startActivityForResult (intent, 0);

然后,在你的游戏类,当你的游戏结束后,调用的setResult(INT结果)之前完成你的游戏活动是这样的:

Then, in your game class, when your game finishes, call setResult (int result) before you finish your game Activity like this:

setResult (123);   // or something like Menu.GAME1_FINISHED
finish ();

返回菜单中的活动,你必须实现的onActivityResult 回调是这样的:

public void onActivityResult (int requestCode, int resultCode, Intent intent) {
    super.onActivityResult (requestCode, resultCode, intent);

    switch (resultCode)
    case 123:
        // hide button 1
    case 234:
        // hide button 2
    // etc...
}

这篇关于如何在另一个活动禁用按钮?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆