Android 创建全局变量
我正在尝试在我的应用程序中实现基本登录。如果用户登录,我想做的是将“全局”变量设置为true/false 我跟着。 这就是我现在的代码:Android 创建全局变量,android,Android,我正在尝试在我的应用程序中实现基本登录。如果用户登录,我想做的是将“全局”变量设置为true/false 我跟着。 这就是我现在的代码: import android.app.Application; public class GlobalParameters extends Application{ private boolean loggedIn; public boolean isLoggedIn() { return loggedIn; }
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=…
引发此异常:
类卡斯特例外
我也在我的清单中添加了这一点:
<application android:name=".GlobalParameters"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name">
</application>
有什么想法吗
谢谢。使用
this.getApplication()
获取与您的活动关联的应用程序。但我认为在你的情况下,使用应用程序
有点过分了。您可以在类中使用静态字段
但是,如果您希望在您的活动被丢弃时保留状态,那么您可以使用SharedReferences
,这里有一个很好的入门指南如果您的变量仅用于登录和注销,则最好使用静态变量,在登录时将其设置为true,在注销时将其设置为false
public static boolean loggedIn;
并按如下方式使用:
myApplication.loggedIn = true;
myApplication.loggedIn = false;
我宁愿使用共享pref来存储登录令牌。当某个活动被丢弃时,Android中的静态字段不会保留状态。这就是应用程序(丑陋)解决方案的全部要点。