我创建了两个类,一个是LoginSignupActivity.java,另一个是ProfileActivity.java
LoginSignUpActivity.java ---
public class LoginSignupActivity extends AppCompatActivity {
** static string id; **
public void getUserDetailsFromFB() {
GraphRequest request = GraphRequest.newMeRequest(
AccessToken.getCurrentAccessToken(),
new GraphRequest.GraphJSONObjectCallback() {
@Override
public void onCompleted(final JSONObject object, GraphResponse response) {
try{
** id=response.getJSONObject().getString("id");**
}
catch (JSONException e) {
//If anything goes wrong
Log.e("my",e.toString());
}
})
}
}
}
ProfileActivity.java ---
public class ProfileActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_profile);
ImageView imageView = (ImageView) findViewById(R.id.dp);
if(imageView!=null){
** String fbid = (new LoginSignupActivity).getUserDetailsFromFB().id; **
if(fbid!=null){
Glide.with(this).load("http://graph.facebook.com/1615242245409408/picture?type=large").into(imageView);
//Glide.with(this).load("http://graph.facebook.com/" + "1675239799409652" + "/picture?type=large").into(imageView);
Log.d("mayank", LoginSignupActivity.id);
}
else{
Log.d("mayank","null facebook id");
}
}
else {
Log.d("mayank","null image view");
}
}
}
当我在ProfileActivity.java中访问id时 它显示空值。 我想访问在LoginSignupActivity.java中获取的值。
请帮忙。 感谢
答案 0 :(得分:0)
尝试将id设为公开,我认为您应该将其设为LoginSignUpActivity.id
如果登录只有一次,我建议你使用SharedPreference。
答案 1 :(得分:0)
做:
public static String id="NA";
如果您的代码行未收到ID,您将获得NA:
id=response.getJSONObject().getString("id");
正如你在评论中所说,你应该在获得它之后使用id的值
id=response.getJSONObject().getString("id");
我认为你应该只在获得下面的id值后启动ProfileActivity.java:
id=response.getJSONObject().getString("id");
Intent intent=new Intent(LoginSignupActivity.this,ProfileActivity.class);
startActivity(intent);
由于