在SherlockFragmentActivity中的MainActivity之前启动Activity

时间:2013-08-13 11:22:26

标签: java android

我有2个活动

  • MainActivity
  • LoginActivity

我想验证用户是否已登录,否则在MainActivity出现之前显示我的LoginActivity。

当我把它放在MainActivity的OnCreateView中时,我有一个错误:

    if(Login.isLogged()){
        selectItem(0);//starts the fragment
    }
    else {
        Intent i = new Intent(MainActivity.this, LoginActivity.class);
        startActivity(i);
    }
  

致命异常:MAIN java.lang.RuntimeException:无法启动活动ComponentInfo {..... MainActivity}:java.lang.NullPointerException

Ps:我的MainActivity是一个SherlockFragmentActivity。我正在使用DrawerLayout。

如何在SherlockFragmentActivity之前启动我的LoginActivity? 感谢

3 个答案:

答案 0 :(得分:1)

如果我是你,我会将LoginActiviy作为启动器活动。在那里我会检查用户是否已经登录,如果他已经开始新的活动..这样的事情:

//in onCreate of LoginActivity

if (hasLogedIn) {
Intent i = new Intent(LoginActivity.this, MainActivity.class);
        startActivity(i);
        finish();
} else {
// show him login activity, setContentView etc... 
// save hasLogin boolean as true
}

答案 1 :(得分:1)

在AndroidManifest文件中进行此更改

<activity
        android:name="com.example.alphabets.LoginActivity"
        android:label="@string/title_activity_login"
        android:windowSoftInputMode="adjustResize|stateVisible" >

<intent-filter>
            <action android:name="android.intent.action.MAIN" />

            <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>

    </activity>

<activity
        android:name="com.example.alphabets.MainActivity"
        android:label="@string/app_name" >
</activity>

答案 2 :(得分:0)

将登录活动设为您的默认活动。检查登录状态。如果用户已登录,请调用主活动并完成()登录活动。否则,等待用户输入