创建全局变量

时间:2013-03-25 22:23:28

标签: android

我正在尝试在我的应用中实现基本登录。我想要做的是在用户登录时将“全局”变量设置为true / false。

我跟着this tutorial。 所以现在这是我的代码:

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>

有什么想法吗?

感谢。

2 个答案:

答案 0 :(得分:1)

使用this.getApplication()获取与Application相关联的Activity。但我想在你的情况下,去Application有点矫枉过正。您可以在类中使用静态字段。

但是,如果您希望在放弃Activity时保留该州,则可以使用SharedPreferences,这是https://developer.android.com/guide/topics/data/data-storage.html#pref

答案 1 :(得分:0)

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

public static boolean loggedIn;

并使用如下:

myApplication.loggedIn = true;

myApplication.loggedIn = false;