启动MainActivity或启动器手册

时间:2014-10-28 16:31:10

标签: android android-activity android-fragments android-viewpager android-lifecycle

当用户打开我的应用程序午餐时,这是否可行活动取决于某事或午餐另一项活动,而不是mainActivity,如果有的话发生了。

我的问题是我在browseData中有拖拽活动LogInActivity和BrowseDataActivity我有Viewpager使用片段,这意味着我不能使用片段代替活动,因为你不能在片段内部有片段。

如果用户已登录,那么启动BrowseDataActivity其他明智的LogInActivity是可能的吗?

我想我看到了一些代码 使用java脚本甚至我可以加载我的视图取决于....但我不想这样做或使用java脚本我可以解决但使用愚蠢的方式。

由于

3 个答案:

答案 0 :(得分:0)

将LoginActivity设置为主要活动,如果用户已登录,则在LoginActivity.onCreate中启动其他活动

OR

在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);

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

答案 1 :(得分:0)

只需修改上面的代码,您似乎只想要两个活动。让我们得到要求

  1. 只有两个活动
  2. 仅在登录时显示BrowseActivity
  3. 如果未登录show LoginActivity
  4. 简单

    在“浏览活动”中。

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

    现在登录LoginActivity。

    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"
    

    }

    这补充了所有要求。

    希望有所帮助

答案 2 :(得分:0)

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

问题

我有LogInActivity和BrowseDataActivity"使用滑动选项卡"

我们可以在LogInActivity中编写代码检查用户是否登录然后显示BrowseDataActivity从堆栈删除LogInActivity否则加载LogInActivity视图但问题是当用户登录时活动窗口动画 LogInActivity窗口动画然后BrowseDataActivity窗口动画如果您可以移除此动画,那么每件事情都很酷但我会通过使用碎片来解决这个问题。

溶液

我们将有一个名为 MainActivity 的活动

<?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>

,我们将有1个片段 LogInFragment 它看起来像什么 和BrowseDataActivity的滑动选项卡,你可以看到我们有viewPager

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    if(isUserLoggedIn()){
      setUpSwaipTabs();// setUp Tab and Viewpager
    }else{
       showLogInFragment(); // load your Fragemtn 
                            //in FrameLayout id=fragment_container and show
                            // and hide viewpager.
    }
}