2017-06-15 34 views
0
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 

當我打印從第一名的價值就等於1,這就是我想要Android的 - 獲取值

但是從第二位打印時它是等於0

爲什麼呢? ?以及如何解決這個問題

+0

錯誤消息在哪裏? Log.d(「DEBUG:[」+ contactsString [0]; +「]」);'顯示一個有效的數字? – Tigger

+0

是的,它的確如此。問題是,當我將手機號碼值直接分配給Web服務時,它運行良好,但是當我使用索引將它分配給字符串數組時,它不是 – RealDEV

+0

可能是數組字符串中有值的空格。在發送之前嘗試修剪字符串數組中的值。 – Dini88

回答

1

我假設你的意思是test的值。您安排電話以異步檢查號碼。在未來的某個時間,結果將返回並執行onResponse。在達到「第二名」後會發生這種情況。因此,test在您打印時仍然爲0。

+0

你是對的我會接受這個,但最後一個問題,我正在做一個for循環來檢查在線數據庫中的所有數字列表中的所有數字如何避免出現錯誤的值? – RealDEV

+0

使用盡可能多的結果變量,因爲您有數字來檢查,例如一個布爾值數組,並寫入您的'onResponse',以便更新正確的變量。 – Henry