如何在onResponse方法中有意地传递数据

时间:2019-01-23 21:49:01

标签: java android retrofit

我想要将变量“点”传递给其他活动。当我尝试在onRensponse方法中执行此操作时,getExtrasString会返回null。如果我尝试在调用UserSingIn的onClick方法中执行此操作,则变量“ points”为空。有没有一种方法可以有意地在onResponse中传递它或等待onClick直到获得此数据?

private void userSingIn(){

    String cardId = editcard.getText().toString().trim();


    Retrofit retrofit = new Retrofit.Builder()
            .baseUrl(APIUrl.DETAILS_URL)
            .addConverterFactory(GsonConverterFactory.create())
            .build();

    APIService service = retrofit.create(APIService.class);

    final User user = new User();
    user.setCardId(cardId);

    Call<Result> call = service.loginUser(
            user.getCardId()

    );

    call.enqueue(new Callback<Result>() {
        @Override
        public void onResponse(Call<Result> call, Response<Result> response) {

            Toast.makeText(getApplicationContext(), response.body().getPoints(), Toast.LENGTH_LONG).show();
            userpass = response.body().getPassword();
            points = response.body().getPoints();


        }

        @Override
        public void onFailure(Call<Result> call, Throwable t) {
            Toast.makeText(getApplicationContext(), t.getMessage(), Toast.LENGTH_LONG).show();

        }
    });


}

2 个答案:

答案 0 :(得分:0)

我知道了。 创建上下文变量并将其分配给onCreate

Context context; context = this.

然后创建这样的意图

Intent i = new Intent(context, MainMenuActivity.class);

答案 1 :(得分:0)

我建议使用调试器,将断点放在将值放入意图中的代码上,并检查其是否实际上具有具有变量“ points”值的String。