繁体   English   中英

无法从Android Studio中的另一个类访问变量的更改值

[英]Unable to access changed value of variable from another class in android studio

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

请帮忙。 谢谢

尝试公开ID,我认为您应该将其抛出LoginSignUpActivity.id

如果仅一次登录,我建议您使用SharedPreference。

作为:

public static  String id="NA";

如果您的代码行未收到ID,您将得到NA:

  id=response.getJSONObject().getString("id");

正如您在评论中所讲的,您应该仅在获得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);

谢谢

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM