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