Luf*_*ffy 5 android android-volley
我需要根据数组列表大小得到响应8次(动态).所以我用过loop.inside for for循环,我正在使用volley get response.
在每次点击api时,我需要获得onResponse.
下面我发布了logcat及相关代码:
Logcat :(已 编辑)
E/getAvaArrStr:
E/urlAva:
E/getAvaArrStr:
E/urlAva:
E/getAvaArrStr:
E/urlAva:
E/getAvaArrStr:
E/urlAva:
E/getAvaArrStr:
E/urlAva:
/* Response */
E/ResponseAvatar:
E/url:
E/CheckArrBit:
E/ResponseAvatar:
E/url:
E/CheckArrBit:
E/ResponseAvatar:
E/url:
E/CheckArrBit:
E/ResponseAvatar:
E/url:
E/CheckArrBit:
Run Code Online (Sandbox Code Playgroud)
CardsFragment.java :(已编辑)
RequestQueue queue = Volley.newRequestQueue(getActivity());
for (int i = 0; i < alAvaArr.size(); i++) {
getAvaArrStr = alAvaArr.get(i);
Log.e("getAvaArrStr", "" + getAvaArrStr);
urlAva = BurblrUtils.BR_AVATAR_IMAGE + getAvaArrStr + "&android=1";
Log.e("urlAva", urlAva);
requestAva = new StringRequest(Request.Method.GET, urlAva, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
if (response != null && !response.startsWith("<HTML>")) {
Log.e("ResponseAvatar", response);
dialog.dismiss();
try {
Toast.makeText(getActivity(), "Running ", Toast.LENGTH_SHORT).show();
String url = response.replace("\\", "");
url = url.replace("\"", "");
Log.e("url", url);
arrBitMap.add(url);
Log.e("CheckArrBit", "" + arrBitMap);
// Glide.with(getActivity()).load(url).placeholder(R.drawable.ic_launcher).error(R.drawable.ic_launcher).into(img);
getSwipeImage();
myAppAdapter.notifyDataSetChanged();
} catch (Exception e) {
e.printStackTrace();
dialog.dismiss();
}
} else {
dialog.dismiss();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
if (error != null) {
Log.e("error", error.toString());
dialog.dismiss();
}
}
}) {
@Override
protected Map<String, String> getParams() {
Map<String, String> params = new HashMap<String, String>();
params.put("file", getAvaArrStr);
Log.e("paramsImg", "" + params);
Log.e("RunningParams", "Testing");
return params;
}
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
Map<String, String> params = new HashMap<String, String>();
params.put("Content-Type", "application/x-www-form-urlencoded");
return params;
}
};
queue.add(requestAva);
queue.getCache().remove(urlAva);
}
Run Code Online (Sandbox Code Playgroud)
预期的日志响应顺序:
E/getAvaArrStr: -> E/urlAva: -> E/ResponseAvatar: -> E/url: -> E/CheckArrBit:
Run Code Online (Sandbox Code Playgroud)
我需要每次运行循环时得到响应.这意味着近8次,基于arrayList大小,我必须得到响应消息,是否有可能在凌空?任何克服这个问题的建议.
小智 1
您必须创建一个函数。该函数makeRequest处理您的下一个 Api 调用
public class MainActivity extends AppCompatActivity {
RequestQueue queue;
int mIndex = 0 ;
ArrayList<String> alAvaArr;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mQueue = Volley.newRequestQueue(getActivity());
alAvaArr = ///////// initialize here
mIndex = 0;
makeRequest(alAvaArr.get(mIndex));
}
public void makeRequest( String arg){
getAvaArrStr = arg;
Log.e("getAvaArrStr", "" + getAvaArrStr);
urlAva = BurblrUtils.BR_AVATAR_IMAGE + getAvaArrStr + "&android=1";
Log.e("urlAva", urlAva);
requestAva = new StringRequest(Request.Method.GET, urlAva, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
if (response != null && !response.startsWith("<HTML>")) {
Log.e("ResponseAvatar", response);
dialog.dismiss();
try {
Toast.makeText(getActivity(), "Running ", Toast.LENGTH_SHORT).show();
String url = response.replace("\\", "");
url = url.replace("\"", "");
Log.e("url", url);
arrBitMap.add(url);
Log.e("CheckArrBit", "" + arrBitMap);
// Glide.with(getActivity()).load(url).placeholder(R.drawable.ic_launcher).error(R.drawable.ic_launcher).into(img);
getSwipeImage();
myAppAdapter.notifyDataSetChanged();
mIndex++;
if(mIndex < alAvaArr.size()){
makeRequest(alAvaArr.get(mIndex));
}
} catch (Exception e) {
e.printStackTrace();
dialog.dismiss();
}
} else {
dialog.dismiss();
}
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
if (error != null) {
Log.e("error", error.toString());
dialog.dismiss();
}
}
}) {
@Override
protected Map<String, String> getParams() {
Map<String, String> params = new HashMap<String, String>();
params.put("file", getAvaArrStr);
Log.e("paramsImg", "" + params);
Log.e("RunningParams", "Testing");
return params;
}
@Override
public Map<String, String> getHeaders() throws AuthFailureError {
Map<String, String> params = new HashMap<String, String>();
params.put("Content-Type", "application/x-www-form-urlencoded");
return params;
}
};
mQueue.add(requestAva);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1296 次 |
| 最近记录: |