【问题标题】:How to pass variable from one activity to another?如何将变量从一个活动传递到另一个活动?
【发布时间】:2021-08-17 12:12:37
【问题描述】:

Image1

Image2

如果用户单击 [image1] 中的“btn_21_2”,我想在 [image2] 中创建“btn_34”以移动“game39”类。如果用户没有点击“btn_21_2”,想要让“btn_34”移动“game30”。我应该在这些图片中添加或更改哪些内容?

【问题讨论】:

  • 当你想在活动之间传递值时使用....startActivityForResult(intent,requestcode) ..... 然后重写 onActivityResult 函数以获取从第二个活动返回的值... ..value 使用 intent.putExtra(key,value) 函数通过意图传递.....请查看此链接以获取更多详细信息javatpoint.com/android-startactivityforresult-example
  • Java Javascript!
  • @paulsm4 我在答案中编写了整个代码,但应用程序仍然崩溃。你能帮帮我吗?
  • @feisalramar 我在答案上写了整个代码,但应用程序仍然崩溃。你能帮帮我吗?

标签: javascript java android android-studio


【解决方案1】:

请发布代码而不是代码图片。

3 个选项:快速、标准、最佳。

1-> 将public static boolean button21Flag = false; 放在您的game17.class 中,当他们单击按钮btn_21_2 时将其更改为true。当你到达btn_34时。

    if(game17.button21Flag)
        intent = new Intent(game26.class,game39.class)
    else
        intent = new Intent(game26.class,game30.class)

2 -> 当点击btn_21_2 时,在 Intent 中放置一个 Extra。并继续传递它,直到您在btn_34 中需要它。

btn_21_2.setOnClickListener(new View.OnClickListener(){
      @Override
      public void onClick(View view){
           Intent intent = new Intent(game17.class,game18.class);
           intent.putExtra("button21Flag", true);
           startActivity(intent);
      }
});
// in btn_34 getIntent.getBooleanExtra("button21Flag", false);

3-> 此解决方案基于您的代码将变得多么复杂和令人费解,如果您继续以这种方式处理它。

创建一个名为 GameState 的单例并让它跟踪游戏状态。您想跟踪的任何内容都应该放在此处,当您到达需要它的位置时,您可以通过静态上下文在任何地方访问它。

(编辑)回复您的答案。

 public static boolean game17Flag = false;
 btn_21_2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                game17Flag = true;
                Intent intent = new Intent(game17.this, game18.class);
                startActivity(intent);
            }
        });
//Remove this completely
{
    if (btn_21_2.isPressed()) {
        game17Flag = true;
    }
}

【讨论】:

  • 谢谢,伙计。更多问题......如果我使用选项#1,哪一行最适合放置它? ,如何放入btn_34?
  • 嘿,@avalerio!嗯...我在答案上写了我的整个代码。你能帮帮我吗?
  • @Jun 我已经更新了我的答案,还有一些友好的建议,你似乎在不了解基本 java 的情况下深入 Android 开发,java 速成课程真的可以帮助你解决问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-27
  • 2012-08-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多