如何在Android中更改启动活动

3

首次使用该应用程序时,我将向用户展示一个登录界面,该界面在清单文件中定义为“android.intent.action.MAIN”。成功登录后,每次启动应用程序时,我希望用户可以看到主屏幕。请告诉我如何实现这一点。

另外,请告诉我是否有任何方法可以在成功登录后以编程方式更改主要活动,以便重定向到主屏幕。

谢谢,

Vijay


1
成功登录后,您可以将数据存储在SharedPreferences中,并在应用程序再次启动时检查SharedPreferences。如果有值,则启动其他活动,否则登录setContentView。 - kalpana c
1
我认为这个链接会对你有所帮助... 链接 谢谢... - user4232
@casperOne 为什么这个问题被关闭了呢? - Alexander Kulyakhtin
“Gimme teh codez”这类问题通常会被关闭为NARQ。 - casperOne
@casperOne 我不认为这是情况... 不过,无论如何,问题已经得到了回答,并且以各种方式,所以这不是问题。 - Alexander Kulyakhtin
我不知道问题出在哪里,但无论如何,你们都节省了我的时间,感谢所有的答案。 感谢Alex提供的解决方案。它起作用了! - vijaykumarg
4个回答

1
如果您对Application类进行子类化,并从您的应用程序的onCreate()中调用所需的活动呢?并且在清单中删除那个intent.MAIN,会怎样呢?

谢谢你。我会实现它的。 - vijaykumarg
我已经对Application进行了子类化,并将其添加到清单文件的application标签下。如建议所述,我删除了Login Activity的Intent-Filter。现在,清单文件不再包含Intent.Main。应用程序已成功安装,但它没有显示在列表中。 - vijaykumarg

1

我认为你无法以编程方式设置主活动,但是你可以在sharedPreferences中设置一个布尔值。如果这个布尔值为true,那么你就调用你的HomeActivity,并结束你的LoginActivity

希望这可以帮到你。


0

我会在登录界面直接调用主屏幕。或者从主屏幕开始,如果登录详细信息未保存/无效,则显示登录界面。

基本上,按照您的要求做这件事并不是必要的,也不是良好的编程实践。


0

当您成功登录后,在主活动中调用finish();,它将从堆栈中删除。然后在您的HomeScreenActivity中,重写返回按钮以充当主页按钮:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        moveTaskToBack(true);
        return true;
    }
    return super.onKeyDown(keyCode, event);
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接