无法从android studio中的另一个类访问变量的变量值

时间:2015-12-13 08:21:31

标签: java android static

我创建了两个类,一个是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中获取的值。

请帮忙。 感谢

2 个答案:

答案 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);

由于