gpt4 book ai didi

java - 如何禁用另一个 Activity 中的按钮?

转载 作者:行者123 更新时间:2023-12-01 14:42:05 25 4
gpt4 key购买 nike

我有一个游戏 Activity ,当它结束时,它会进入主菜单,现在我需要禁用启动刚刚结束的游戏的按钮。让我们将我的游戏类命名为 classGame 并将我的菜单命名为 classMenu。我尝试过:

在我的类(class)游戏中:

classMenu obj = new classMenu();

然后在同一个类(class),当时间合适时我会打电话:

obj.myButtonToBeDisabled.setEnabled(false);

但是当我的菜单 Activity 开始时,我在创建 obj 的行上收到 stactOverflow 错误。如何做到这一点?

编辑:我也在我的游戏类中尝试过这个:

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

然后调用它:

obj.disableButton

但是同样的错误。

日志猫:

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 是我的游戏类,Izbor 是我的菜单类。

最佳答案

您不需要从游戏中调用任何内容。如果您的菜单是首先启动游戏的菜单,则它可以在游戏的 Activity 完成时收到通知。

使用 startActivityForResult 开始游戏,如下所示:

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

然后,在您的游戏类中,当您的游戏结束时,在您完成您的游戏Activity之前调用setResult (int result),如下所示:

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

回到菜单 Activity ,您必须像这样实现 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...
}

关于java - 如何禁用另一个 Activity 中的按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15851899/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com