我让我的用户在我的应用上登录Facebook,Twitter和G +。登录后,我想知道他们已登录我的应用中的每个活动。我希望找到一种方法来解决每个活动。我知道您可以使用Intent将变量从活动传递到活动,如下所示:
Intent intent = new Intent(MainActivity.this,
SecondActivity.class);
intent.putExtra("loginMethod", "facebook");
startActivity(intent);
但这对于10多项活动来说变得很麻烦。有没有更简单的方法?
答案 0 :(得分:0)
您可以使用SharedPreferences。
这是一个很好的教程:
http://examples.javacodegeeks.com/android/core/content/android-sharedpreferences-example/
答案 1 :(得分:0)
我想要的是通过这种方式实现共享偏好
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
SharedPreferences.Editor editor = preferences.edit();
editor.putstring("loginMethod","Facebook");
editor.commit;
并且只要您想检查loginMethod值,只需像这样调用首选项值...
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
String loginMethodValue = preferences.getString("loginMethod", "");
如果您需要更多助手,我将非常乐意为您提供帮助
答案 2 :(得分:0)
你有很多方法可以这样做。
更多信息here
答案 3 :(得分:0)
我建议你使用Singleton类。单身的最小内容是:
我通常将其称为 Store ,因为它扮演整个应用程序的公共存储角色。 例如:
public class Store {
private static Store me;
private Facebook fb;
private Twitter twitter;
private Store() {
this.fb=new Facebook();
this.twitter=new Twitter();
}
public static Store get() {
if (me==null)
me=new Store();
return me;
}
public void postInFaceBook(FBPost post) {
this.fb.post(post);
}
...
}
有时您需要在活动之间共享上下文。在这种情况下,我建议将应用程序上下文传递给get方法:
public class Store {
private static Store me;
private Facebook fb;
private Twitter twitter;
private Context ctx;
private Store(Context ctx) {
this.ctx=ctx;
this.fb=new Facebook();
this.twitter=new Twitter();
}
public static Store get(Context ctx) {
if (me==null)
me=new Store(ctx);
return me;
}
public void postInFaceBook(FBPost post) {
this.fb.post(this.ctx, post);
}
...
}
使用商店只是:
public void m(FBPost p) {
Store.get().postInFacebook(p);
}
第一次使用商店时,将创建唯一的实例(将由整个应用程序共享);第二次和下一次, get 方法将返回先前的现有实例。