我可以在android中使用skydrive API登录skydrive。 现在我想在另一个avitivity中使用同一会话对象和liveconnectclient对象。 我该怎么做?如何在共享首选项中存储Skydrive API的LiveConnectClient和会话对象
public void onAuthComplete(LiveStatus status, LiveConnectSession session,Object userState)
{
if (status == LiveStatus.CONNECTED)
{
client = new LiveConnectClient(session);
Log.i("message", client.toString());
// StoreSkydriveSession(session);
txtskydrive.setText("Connected");
skydrivefolder.setEnabled(true);
isSkydriveConnected=true;
}
else
{
txtskydrive.setText("Not Connected");
Toast.makeText(getApplicationContext(), "Not Signed In",
Toast.LENGTH_LONG).show();
// this.resultTextView.setText("Not signed in.");
client = null;
}
}
我能够登录。现在怎么能和我应该在哪里存储客户端和会话对象,这样我就可以在另一个activites使用它。
我曾尝试使用bean来设置和获取值,但是当我尝试获取它时,它会引发空指针异常。
我试图将其存储在共享首选项中,但我无法将其从字符串转换为LiveConnectClient对象。
谢谢:)
编辑:
我觉得可以用GSON ... GSON(也被称为谷歌GSON)是一个开源的Java库序列化和反序列化Java对象(从)JSON
SharedPreferences mPrefs = getPreferences(MODE_PRIVATE);
For save
Editor prefsEditor = mPrefs.edit();
Gson gson = new Gson();
String json = gson.toJson(client); //LiveConnectClient Object
prefsEditor.putString("MyObject", json);
prefsEditor.commit();
For get
Gson gson = new Gson();
String json = mPrefs.getString("MyObject", "");
LiveConnectClient obj = gson.fromJson(json, MyObject.class);
我认为这应该工作....
感谢man .. :) ... GSON也是这个东西的另一种选择..但我实现了你的方法,它作为魅力..再次感谢.. .. – 2013-04-06 09:35:38