0

我正在尝试在我的应用程序中实现基本登录。如果用户登录,我想要做的是设置一个“全局”变量为真/假。

我已经按照这个教程。所以这是我现在的代码:

import android.app.Application;

public class GlobalParameters extends Application{
    private boolean loggedIn;

    public boolean isLoggedIn() {
    return loggedIn;
    }

    public void setLoggedIn(boolean loggedIn) {
    this.loggedIn = loggedIn;
    }
}

这是在我的onCreate

GlobalParameters gp = ((GlobalParameters)getApplicationContext());
gp.setLoggedIn(false);

GlobalParameters gp = ...抛出此异常:

ClassCastException

我也在我的清单中添加了这个:

<application android:name=".GlobalParameters" 
   android:icon="@drawable/ic_launcher" 
   android:label="@string/app_name">
</application>

任何想法?

谢谢。

4

2 回答 2

1

用于this.getApplication()获取Application与您的Activity. 但我认为在你的情况下,去那个Application有点矫枉过正。您可以只在类中使用静态字段。

但是,如果您希望在您Activity被丢弃时保留状态,那么您可以使用SharedPreferences,一个很好的入门指南在这里https://developer.android.com/guide/topics/data/data-storage.html #pref

于 2013-03-25T22:26:43.997 回答
0

如果您的变量只是用于登录和注销,最好使用静态变量并在登录时将其设置为 true,在注销时将其设置为 false。

public static boolean loggedIn;

并使用它如下:

myApplication.loggedIn = true;

myApplication.loggedIn = false;
于 2013-03-25T22:58:48.567 回答