0
我有一個Adapter
了RecyclerView
,我Adapter
人希望兩個參數之一是Context
,第二個是ArrayList
。凌空回調返回一個ArrayList中,然後將其發送到RecyclerView.Adapter
我的MainActivity
上的ArrayList
看起來像這樣。當onSucces方法完成時,我無法返回ArrayList。
ArrayList<Doc> docs = new ArrayList<>();
public ArrayList<Doc> getDocumentFromServer() {
GetDocsFromServer.getAllDocs(getActivity(), new GetDocsFromServer.VolleyCallBackDocs(){
@Override
public void onSuccess(ArrayList<String> documentos) {
docs = new ArrayList<>();
for (int i = 0; i < documentos.size(); i++) {
Doc item = new Doc();
item.setTittle("list item" + i);
item.setDescription("DESCRIPTION");
item.setPosition (i);
docs.add(item);
}
}
@Override
public void onFail(String msg) {
}
});
return docs;
}
當我宣佈在onCreateView
MyAdapter
(這是一個Fragment
)似乎是這樣的。
MyAdapter adapter = new MyAdapter(getActivity(), getDocumentFromServer());
現在我從Volley
數據庫獲得的所有數據和我設置的所有這些信息爲ArrayList
public class GetOficiosFromServer{
public static void getAllWorks(final Context context, final VolleyCallBack callBack) {
RequestQueue rq = Volley.newRequestQueue(context);
StringRequest strReq = new StringRequest(Request.Method.GET, AppConfig.URL_GET_WORKS, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
JSONArray jsonArray = new JSONArray(response);
ArrayList<String> oficios = new ArrayList<>();
for(int i=0; i< jsonArray.length(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
String name = jsonObject.getString("nombre");
oficios.add(name);
}
callBack.onSuccess(oficios);
} catch (JSONException e) {
e.printStackTrace();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
}
});
rq.add(strReq);
}
public interface VolleyCallBack{
void onSuccess(ArrayList<String>oficios);
void onFail(String msg);
}
如何傳遞這個ArrayList<String>
到我Adapter
。
我從我的MainActivity更新我的代碼,以前的版本是靜態的東西,y把VolleyRequest放入。當onSucces方法完成時,我無法返回ArrayList。 @SripadRaj – JosCarrillo