我正在尝试在我的应用中实现基本登录。我想要做的是在用户登录时将“全局”变量设置为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>
有什么想法吗?
感谢。
答案 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;