0

我有 2 个活动

  • 主要活动
  • 登录活动

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

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

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

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

Ps:我的 MainActivity 是一个 SherlockFragmentActivity。我正在使用抽屉布局。

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

4

3 回答 3

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
}
于 2013-08-13T11:30:47.133 回答
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>
于 2013-08-13T11:35:16.310 回答
0

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

于 2013-08-13T11:26:49.687 回答