iT邦幫忙

0

Android return的問題 [已解決]

  • 分享至 

  • xImage

大家好,想請問我最近遇到的問題,我在android studio上寫java,為什麼return x的值是0
而不是我在onResponse回傳的 x = response.body() ,已經確定response.body裡面的值是25

這邊是函式

public class GetLong {
    public static int x;
    public static int ShopLength(){
        Retrofit retrofit1 = new Retrofit.Builder()
                .baseUrl("http://10.25.7.222:62678/")
                .addConverterFactory(GsonConverterFactory.create())
                .build();
        ApiGet3 apiGet3 = retrofit1.create(ApiGet3.class);
        Call<Integer> call = apiGet3.getTotal();
        call.enqueue(new Callback<Integer>() {
            @Override
            public void onResponse(Call<Integer> call, Response<Integer> response) {
                x = response.body();
                Log.d("Length",""+ x); //顯示25
            }
            @Override
            public void onFailure(Call<Integer> call, Throwable t) {
                Log.d("Length","error:"+t.toString());
            }
        });
        return x; //回傳卻是0
    }
    public interface ApiGet3{
        @GET("api/Commodity/GetTotal")
        Call<Integer> getTotal();
    }
}

我要呼叫ShopLength(),Log的值是0

public void t1(){
        int y = ShopLength();
        Log.d("Y的值",""+y); //顯示0
    }

麻煩各位大大幫忙解決我的問題

看更多先前的討論...收起先前的討論...
GHH iT邦新手 1 級 ‧ 2022-05-30 16:51:06 檢舉
因為 onResponse 是非同步不會馬上 return
那想請問要怎麼解決?
GHH iT邦新手 1 級 ‧ 2022-05-31 09:45:18 檢舉
寫個 interface 做 callback
!! 感謝解答已經好了,如果可以的話,可以在底下回答我可以給你最佳答案
GHH iT邦新手 1 級 ‧ 2022-05-31 16:56:29 檢舉
沒關係的 有幫上忙就好:)
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友回答

立即登入回答