【问题标题】:TextView from SecondActivity become visible after a button from MainActivity is pressed?按下 MainActivity 的按钮后,SecondActivity 的 TextView 变得可见?
【发布时间】:2020-11-21 00:44:55
【问题描述】:

我是 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。

谢谢!

【问题讨论】:

  • 您可以使用第一个活动中的字符串传递,并在第二个活动中从 getExtra 获取该字符串值。然后如果 value == Success 设置你的 textview.setVisibility(View.VISIBLE);

标签: java android android-intent android-button


【解决方案1】:

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

  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 类状态,您可以选择隐藏/显示您的文本。但是,此解决方案不是推荐的方法。因为全局状态不利于测试,只会污染代码。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多