Java Android-获取价值 test=0; 电话=新电话(); phone.phone=“01093575777”; WebService.getInstance().getApi().checkNumber(phone).enqueue(新回调(){ @凌驾 公共void onResponse(调用、响应){ if(response.body().status==1){ 测试++; //----------------->第一名 } } @凌驾 失败时公共无效(调用调用,可丢弃的t){ } }); //----------------->第二名

Java Android-获取价值 test=0; 电话=新电话(); phone.phone=“01093575777”; WebService.getInstance().getApi().checkNumber(phone).enqueue(新回调(){ @凌驾 公共void onResponse(调用、响应){ if(response.body().status==1){ 测试++; //----------------->第一名 } } @凌驾 失败时公共无效(调用调用,可丢弃的t){ } }); //----------------->第二名,java,android,Java,Android,当我从第一个位置打印值时,它等于1,这就是我想要的 但当从第二位打印时,它等于0 为什么??如何解决这个问题,我想你指的是test的值。您可以安排一个异步检查号码的呼叫。在将来的某个时间,结果将返回并执行onResponse。这发生在你到达“第二名”之后。因此,在那里打印时,test仍然为0。错误消息在哪里?DoesLog.d(“调试:[“+联系人字符串[0];+”])显示一个有效的号码?是的。问题是,当我将mobile number值直接分配给web服务时,它工作得很好,但是当我从带有索引的字

当我从第一个位置打印值时,它等于1,这就是我想要的

但当从第二位打印时,它等于0


为什么??如何解决这个问题,我想你指的是
test
的值。您可以安排一个异步检查号码的呼叫。在将来的某个时间,结果将返回并执行
onResponse
。这发生在你到达“第二名”之后。因此,在那里打印时,
test
仍然为0。

错误消息在哪里?Does
Log.d(“调试:[“+联系人字符串[0];+”])显示一个有效的号码?是的。问题是,当我将mobile number值直接分配给web服务时,它工作得很好,但是当我从带有索引的字符串数组中分配它时,它可能不是数组字符串,数组字符串中有带值的空格。尝试在发送前从字符串数组中修剪值。该值已修剪且正确。。发现了一些与分配无关的问题。。在onResponse内部当我打印Response时,它是正确的,这意味着它正在工作。问题是,尽管它是正确的,但它不会改变计数,也不会在onResponse内部进行任何数学操作。您是否在循环中执行上述代码?您是正确的,我将接受这一点,但最后一个问题是我正在进行for循环使用在线数据库中的所有数字检查列表中的所有数字如何避免获得错误的值?使用需要检查的数字的尽可能多的结果变量,例如布尔数组,并以更新正确变量的方式写入
onResponse
test=0;
Phone phone=new Phone();
phone.phone="01093575777";
WebService.getInstance().getApi().checkNumber(phone).enqueue(new Callback<MainResponse>() {
    @Override
    public void onResponse(Call<MainResponse> call, Response<MainResponse> response) {
        if (response.body().status==1){
            test++;
            //----------------->first place
        }
    }

    @Override
    public void onFailure(Call<MainResponse> call, Throwable t) {
    }
});

//----------------->second place