آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

ساخت کلاس CustomCallBack با رتروفیت

kazemian  7 سال پیش  7 سال پیش
0 0

سلام دوستان
درمورد ازتباط با سرور و رتروفیت سوالی داشتم

 


من یک CustomCallBack نوشتم که extends شده از یک کلاسی ،‌و همه ی کلاس های مدلم هم extends شدن به اون کلاس

 public abstract class CustomCallBack<T extends CustomResponse> implements Callback<T> {

    @Override
    public void onResponse(Call<T> call, Response<T> response) {
        //Do something
    }

    @Override
    public void onFailure(Call<T> call, Throwable t) {

    }
}



بعد هر جا می‌خوام ریکوئست رو بفرستم توی enque یا execute به جای اینکه کال بک بدم، CustomCallBack رو نیو می‌کنم
به این صورت مثلا :

 call.enqueue(new CustomCallBack<extendedCustomResponse>(){
                @Override
                public void onResponse(Call<Album> call, Response<Album> response) {
                    super.onResponse(call, response);
                }

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




الان مشکل من اینجاست که  به جای Call<Album> توی کد بالا باید بنویسم Call<List<Album>>
چون ساختار json دریافتیم لیستی از object هاست اما وقتی اینو مینویسم ارور میده میگه باید یک class از جنس Album به Call پاس بدی نه List
به نظرتون چطور می تونم این مشکل رو برطرف کنم ؟

 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
Mohammad Babaei  7 سال پیش
0 0

تو کلاس سرویستون تعریف کردین که ریسپانس این فانکشن که دارین کال میکنین از جنس < < Call<List<Album> هست؟

به این شکل باید بگین ریپانسش لیستی از object Album هست

Kotlin

 @FormUrlEncoded
@POST("user/get_messages")
fun getMessages(@Field("user_name") userName: String ): Call<List<Album>>

Java

 
@FormUrlEncoded
@POST("user/get_messages")
Call<List<Album>> getMessages(@Field("user_name") String userName);

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .