从另一个Activity获取HashMap数据

时间:2013-11-08 10:58:30

标签: java android android-intent hashmap

我使用this tutorial来保存会话。我仍然不明白如何从另一个活动中获取此数据。

 public HashMap<String, String> getUserDetails(){
    HashMap<String, String> user = new HashMap<String, String>();
      user.put(KEY_FULLNAME, pref.getString(KEY_FULLNAME, null));        
      user.put(KEY_EMAIL, pref.getString(KEY_EMAIL, null));

    // return user
    return user;
}

我发现人们正在使用意图将其发送到另一个活动,例如link.是否有一种简单的方法来获取数据,就像我从另一个活动中调用方法一样(导入类,然后给出一个变量{该类的{1}},并调用类似var的方法。


更新

var.theMethodFromClass()

这个函数在我的SessionManager类中,如何直接使用它,而不是再次初始化所有变量,因为它们已经在活动中初始化以便使用。

SessionManager.class的完整代码位于第一个链接

5 个答案:

答案 0 :(得分:1)

您已将数据保存在SharedPrefernces中,因此需要将其从Activity发送到另一个Activity。尝试打开SharedPreference文件另一个活动并随意使用..

答案 1 :(得分:1)

将数据保存到调用活动的首选项中。

public void saveToPreferences(HashMap<String, String> user)
{
SharedPreferences pref = getSharedPreferences("PreferencesName", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = pref.edit();
editor.putString(KEY_FULLNAME, user.get(KEY_FULLNAME));
editor.putString(KEY_EMAIL, user.get(KEY_EMAIL));
    editor.commit();
}

在您的被叫活动中。 使用此代码。 首先初始化首选项然后从中获取数据。

public HashMap<String, String> getUserDetails(){
SharedPreferences pref = getSharedPreferences("PreferencesName", Context.MODE_PRIVATE);
    HashMap<String, String> user = new HashMap<String, String>();
    user.put(KEY_FULLNAME, pref.getString(KEY_FULLNAME, null));        
    user.put(KEY_EMAIL, pref.getString(KEY_EMAIL, null));


    return user;
    }

答案 2 :(得分:0)

如果要保存HashMap并在重新启动应用程序后使用它,请使用SharedPreferences。它会将HashMap保存在设备中。

如果您只需要将HashMap参数传递给另一个Activity,请使用Intent。您通过Intent的所有内容都必须是可序列化的,以便在所有情况下都能正常运行。阅读:http://developer.android.com/guide/components/intents-filters.html

答案 3 :(得分:-1)

为什么要将hashmap传递给Activity?这使 NO Sense。

从hashmap / preference中获取数据并将其从Activity A中的附加内容传递给Activity B.当涉及在活动之间传递数据时,坚持使用原语。

答案 4 :(得分:-2)

如果您的项目允许,只需将HashMap 静态,然后您可以通过调用 Class.hashmapvar

在项目的任何其他活动中检索它