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

چطور مقدار حاصل از volley onResponse را return کنیم؟ (how to Returning values from volley onRespons ...

Saleh  10 سال پیش  10 سال پیش
+1 0

سلام
لطفا دوستانی که با کتابخانه volley سروکار دارند راهنمایی کنند
من یک کلاس جاوا ساختم که مقادیری رو بهش پاس میدم و اونجا هم از کتابخونه volley استفاده کردم و مقدایر رو به صفحه php پست میکنم و نتیجه  برگشتی رو داخل یک list میریزم و در نهایت list رو return میکنم اما لیستی که بر میگرده خالی هستش بعد از دیباگ و بررسی خط به خط کدها متوجه شدم قبل از اینکه عملیات دانلود انجام بشه و کار کتابخونه volley response تموم بشه return انجام میشه و لیست که هنوز پر نشده به صورت خالی return میشه.

در stackoverflow این مشکل من رو خیلی ها داشتند و بار ها  پرسیده شده و در همه موارد جوابش این بوده که باید از اینتر فیس استفاده کنیم و چند خط کد هم گذاشتن اما من با تمام تلاشی که کرم نتونستم از توضیحاتشون چیزی سر در بیارم.

چند نمونه جواب در stackoverflow

http://stackoverflow.com/questions/35558566/volley-how-do-i-return-the-arraylist-from-onresponse-method-in-volley

http://stackoverflow.com/questions/28120029/how-can-i-return-value-from-function-onresponse-of-volley

لطفا اگه کسی حوصلش رو داشتم یکم واضح تر برام توضیح بده دقیقا چیکار باید کرد
کدهای زیر برای کلاس من هستش.

 

 package com.my.app.downloader;


import android.content.Context;
import android.util.Base64;
import android.util.Log;
import android.widget.Toast;
import com.android.volley.AuthFailureError;
import com.android.volley.Request;
import com.android.volley.RequestQueue;
import com.android.volley.Response;
import com.android.volley.VolleyError;
import com.android.volley.toolbox.StringRequest;
import com.android.volley.toolbox.Volley;
import com.carrot.singim.R;
import com.carrot.singim.adapter.CatGames_Data_Free;
import com.carrot.singim.utils.AddressUtils;
import org.json.JSONArray;
import org.json.JSONObject;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class SignUp {

private Context context;

public List<String> startSignUp(Context con, final String userName, final String userPhone, final String userPass)
{
context = con;
final List<String> listEnd = new ArrayList<>();

RequestQueue queue = Volley.newRequestQueue(context);
StringRequest myRequest = new StringRequest(Request.Method.POST, AddressUtils.getSignUpUrl(),
new Response.Listener<String>() {
@Override
public void onResponse(String response) {

listEnd.add(response);
listEnd.add(response);
listEnd.add(response);
listEnd.add(response);
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
String e = context.getResources().getString(R.string.serverError);
showToast(e);
}
}
)
{
@Override
protected Map<String, String> getParams() throws AuthFailureError {

Map<String, String> params = new HashMap<>();


params.put("uname" , userName);
params.put("uphone", userPhone);
params.put("upass", userPass);

return params;
}
};
queue.add(myRequest);

return listEnd;
}

public void showToast (String error){
Toast.makeText(context, error, Toast.LENGTH_LONG).show();
}

}

 برای این سوال پاسخی وجود ندارد.

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