首页 > 解决方案 > 按下 MainActivity 的按钮后,SecondActivity 的 TextView 变得可见?

问题描述

我对 Android Studio 开发非常陌生,我想知道如何做到这一点,当我单击 MainActivity 上的一个按钮时,它会引导我到 secondActivity 文本变得可见(最初 TextView 将不可见,直到 MainActivity 的按钮是按下)

imageButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

Intent intent = new Intent(MainActivity.this, SecondActivity.class);
                String status = "Success!";
                intent2.putExtra("Status",status);
                startActivity(intent);
             }
        });

我想为此(在 SecondActivity 页面上)做一个 if-else 语句,如果用户直接转到 SecondActivity,它将不会在那里显示任何文本。但是如果按下 MainAcitivty 页面上的按钮,系统将转到 SecondActivity 并显示 TextView。

谢谢!

标签: javaandroidandroid-intentandroid-button

解决方案


基本上,有几种方法可以做到这一点。

  1. 使用意图传递数据当然,您将布尔类型或您想要的任何内容传递给此意图,我认为这是您在这里尝试采用的方法。所以我可以给你举个例子:在你的第一个活动中,你可以做这样的事情,
button.setOnClickListener {
    val intent = Intent(this@MainActivity, SecondActivity::class.java).apply {
        val status = true
        putExtra("Status", status)
    }
    startActivity(intent)
}

在您的第二个活动中,您需要重写onCreate以解析您的意图以决定您的文本是否要显示。

val status = intent.extras?.getBoolean("Status")
if(status) {
  hideText()
} else {
  showText()
}
  1. 您可以处理的另一种方法是尝试创建singleton类以保持该类中的状态,并基于singleton该类状态,您可以选择隐藏/显示您的文本。但是,此解决方案不是推荐的方法。因为全局状态不利于测试并且只会污染代码。

推荐阅读