2013-04-05 21 views
0

我可以在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); 

我认为这应该工作....

回答

0

如果您需要访问不同的活动相同的对象,然后最简单的方式做到这一点 - 只要科瑞Ë某种处理类:

class LiveConnectClientHandler{ 

public static LiveConnectClient client; 

} 

然后,当你得到它:

public void onAuthComplete(LiveStatus status, LiveConnectSession session,Object userState) { 
if (status == LiveStatus.CONNECTED) { 
LiveConnectClientHandler.client = new LiveConnectClient(session); 

所以在其他活动中,你可以通过获得此 - LiveConnectClientHandler.client。

但我不确定这是否正确。

首先将数据从一个活动发送到另一个活动应该是意图。

在第二可能你有其他方式获得LiveConnectSession对象?因为它只能用于一些简单的字符串资源(如access_token)。

+0

感谢man .. :) ... GSON也是这个东西的另一种选择..但我实现了你的方法,它作为魅力..再次感谢.. .. – 2013-04-06 09:35:38

相关问题