Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在启动意图后保持文本视图和按钮不可见_Java_Android - Fatal编程技术网

Java 如何在启动意图后保持文本视图和按钮不可见

Java 如何在启动意图后保持文本视图和按钮不可见,java,android,Java,Android,因此,我有一个主要活动,我有“登录”按钮、“参加测验”按钮和“未注册?单击此处”文本视图。如果用户登录,“登录”按钮和文本视图将不可见,“我的帐户”按钮将可见。假设用户决定在参加测验之前登录。一切都按它应该的方式工作——“登录”按钮和文本视图不可见,“我的帐户”按钮可见。之后,用户决定参加测验,这会将他们带到另一个活动。在他们进行测试后,他们将被带到第三个活动-结果性。有一个“菜单”项可将他们带回MainActivity,目的是: @Override public boolean on

因此,我有一个主要活动,我有“登录”按钮、“参加测验”按钮和“未注册?单击此处”文本视图。如果用户登录,“登录”按钮和文本视图将不可见,“我的帐户”按钮将可见。假设用户决定在参加测验之前登录。一切都按它应该的方式工作——“登录”按钮和文本视图不可见,“我的帐户”按钮可见。之后,用户决定参加测验,这会将他们带到另一个活动。在他们进行测试后,他们将被带到第三个活动-结果性。有一个“菜单”项可将他们带回MainActivity,目的是:

 @Override
    public boolean onOptionsItemSelected(@NonNull MenuItem item) {
        switch(item.getItemId())
        {
            case android.R.id.home:
                Intent intent = new Intent(getApplicationContext(), MainActivity.class);
                startActivity(intent);
                break;
        }
        return true;
    }
现在问题来了。当用户返回MainActivity时,除了“我的帐户”按钮外,还有“登录”按钮和要注册的文本视图。我如何使它们不可见,并使“我的帐户”按钮可见


我可能应该使用savedInstanceState,但我不知道如何使用,因为每个在线教程都只包含EditText或Textview中的文本。很抱歉问了这么长的问题。

这是因为您正在创建一个新的活动,而不是“返回”到第一个活动。这个菜单应该弹出堆栈,直到你点击主活动


我建议使用片段而不是这么多活动。

您可以创建一个布尔变量,如
isAuthenticated
,当用户通过身份验证时将其设置为true,当用户未通过身份验证时将其改回false。您还可以使用SharedReferences存储布尔变量。因此,无论何时返回到
main活动
,您都可以从共享首选项中获取布尔变量,并检查它是否为真。因此,如果
isAuthenticated
为true,则使登录按钮不可见,否则使其可见


另一种方法是使用Firebase进行身份验证,我认为这更好。

您可以将它的状态存储在一个变量中,然后检查它并相应地采取行动。
示例:-您可以使用SharedReferences