我制作了一个Android应用程序,其中我使用了Facebook登录。我想将用户的Facebook ID转移到另一个Activity类。我使用以下代码来执行此操作
Bundle bundle = new Bundle();
bundle.putString("fields", "id");
AsyncFacebookRunner asyncRunner = new AsyncFacebookRunner(facebook);
asyncRunner.request("me", bundle, new AsyncFacebookRunner.RequestListener() {
public void onMalformedURLException(MalformedURLException e, Object state) {
// TODO Auto-generated method stub
}
public void onIOException(IOException e, Object state) {
// TODO Auto-generated method stub
}
public void onFileNotFoundException(FileNotFoundException e, Object state) {
// TODO Auto-generated method stub
}
public void onFacebookError(FacebookError e, Object state) {
// TODO Auto-generated method stub
}
public void onComplete(String response, Object state) {
JSONObject jObject;
try {
jObject = new JSONObject(response);
Log.d("FACEBOOK ID", jObject.getString("id"));
} catch (JSONException e) {
e.printStackTrace();
}
}
});
我可以在try和catch中获取Facebook ID但是当我使用此ID或将其转移到另一个活动时,它会显示并传输“null”。
如何将Facebook ID转移到另一个活动类? 请帮助!!!
提前致谢。
答案 0 :(得分:1)
商店
String loginId = jObject.getString("id");
SharedPreferences p = PreferenceManager.getDefaultSharedPreferences(context);
p.edit().putString("FB_ID", loginId).commit();
在另一项活动中获取ID
SharedPreferences p = PreferenceManager.getDefaultSharedPreferences(context);
String username = p.getString("FB_ID", "");
答案 1 :(得分:0)
这是用于存储id的完整代码,因为我没有看到赋值语句。即你没有存储你在任何地方收到的“id”的值。你刚刚登录了它。
使用
之类的赋值语句String loginId = jObject.getString("id");
答案 2 :(得分:0)
使用临时演员!
发送:
int id = 42;
Intent i = new Intent(FromActivity.this, ToActivity.class);
i.putExtra("your_identifient", id);
startActivity(i);
进入新的活动:
int id = -1;
Bundle extras = getIntent().getExtras();
if (extras.containsKey("your_identifient"))
id = extras.getInt("your_identifient", -1);