Android 启动主活动或启动器手册

Android 启动主活动或启动器手册,android,android-activity,android-fragments,android-viewpager,android-lifecycle,Android,Android Activity,Android Fragments,Android Viewpager,Android Lifecycle,当用户打开我的应用程序进行午餐活动取决于某件事或午餐另一项活动而非主要活动(如果发生)时,这是可能的 我的问题是,我有两个活动LogInActivity和BrowsDestactaActivity在BrowsDestacta中我有Viewpager使用片段,这意味着我不能使用片段代替活动,因为片段中不能有片段 如果用户已登录,则启动浏览活动其他明智的登录活动是否可行 我想我看到了一些代码 使用java脚本,我甚至可以根据…加载我的视图。。。。但我不想这样做,也不想使用java脚本,我可以使用这种

当用户打开我的应用程序进行午餐活动取决于某件事或午餐另一项活动而非主要活动(如果发生)时,这是可能的

我的问题是,我有两个活动LogInActivity和BrowsDestactaActivity在BrowsDestacta中我有Viewpager使用片段,这意味着我不能使用片段代替活动,因为片段中不能有片段

如果用户已登录,则启动浏览活动其他明智的登录活动是否可行

我想我看到了一些代码 使用java脚本,我甚至可以根据…加载我的视图。。。。但我不想这样做,也不想使用java脚本,我可以使用这种愚蠢的方式


谢谢

将LoginActivity设置为主活动,并在LoginActivity中。如果用户已登录,则重新创建其他活动

在onCreate中创建一个其他活动,我们称之为SplashScreenActivity,如下所示:

setContentView(R.layout.myview);
boolean loggedIn = ...;
Intent i;
if(loggedIn)
   i = new Intent(this, yourActivity.class);
else
   i = new Intent(this, LogInActivity.class);

 startActivity(i);

抱歉,我无法添加代码标签,因为我在手机上

只是对上述代码的修改,您似乎只需要两个活动。让我们了解需求

只有两项活动 仅在登录时显示浏览活动 如果未登录,则显示LoginActivity 简单的

在浏览活动中

public boolean isLoggedin = prefs.getBoolean("isLoggedIn",false);
...
onCreate(){
 if (isLoggedIn)
setContentView(R.layout.browseActivity)
else{
intent i = new intent(this,LoginActivity);
startActivity(i);

}
现在进入后勤活动

public boolean isLoggedin = prefs.getBoolean("isLoggedIn",false);
...
onCreate(){
 if (isLoggedIn)
setContentView(R.layout.browseActivity)
else{
intent i = new intent(this,LoginActivity);
startActivity(i);

}
onCreate(){

//Code for loggin in possible conncecting to a server etc... whatever your implementation is
//If successful

SharedPreferences sp = getSharedPreferences("user_Data",MODE_PRIVATE);
SharedPreferences.Editor ed = sp.edit();
ed.putBoolean("isLoggedIn", true);
ed.commit();
//As the user is now logged in as they got this far...take them to the browse activity!
Intent i = new intent(this,BrowseActivity.class);
startActivity(i);

//else they are not logged in so show a "try again dialog"
}

这是对所有要求的补充


我知道没有人回答这个问题,但我想回答我自己的问题,以帮助任何面临同样问题的人。

问题 我有登录功能和浏览功能,可以滑动标签 我们可以在LogInActivity check中编写代码,如果用户loggedIn,则显示BrowsDestactaaActivity从堆栈中移除LogInActivity,否则加载LogInActivity视图,但问题是,当用户loggedIn时,活动窗口动画首先是LogInActivity窗口动画,然后是BrowsDestactaaActivity窗口动画,如果您可以移除此动画,则每件事都是如此很酷,但我会使用片段解决这个问题

解决方案 我们将有一个叫做main活动的活动,类似这样的活动

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 xmlns:android="http://schemas.android.com/apk/res/android">

   <android.support.v4.view.ViewPager
       xmlns:android="http://schemas.android.com/apk/res/android"
       android:id="@+id/viewPager"
       android:layout_width="fill_parent"
       android:layout_height="fill_parent" />

   <FrameLayout
       android:layout_width="fill_parent"
       android:layout_height="fill_parent"
       android:id="@+id/fragment_container"
       android:visibility="gone"></FrameLayout>


</FrameLayout>

不确定您的意思,但在LoginActivity中,如果用户已登录,请不要呈现任何视图集空视图。也许您可以将其他活动设置为主活动。这项活动将是空白的,它将作为一个启动屏幕。请检查我的答案,并在andryr的帮助下实施,以及我自己对您需求的解释