来自getParams()的调用方法
我想从getParams()调用方法,但没有任何反应,它是从getParams()调用还是错误的正确方法?这种方法getDrugId(drugNames.get(i));
返回一个值,但是当我把它放在getparams();什么都没发生。来自getParams()的调用方法
{
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> params = new HashMap<String, String>();
for (int i = 0; i<drugNames.size(); i++){
params.put("drid["+i+"]",getDrugId(drugNames.get(i)));
params.put("paid", 1+"");
}
return params;
}
private String getDrugId(final String drugName) {
StringRequest stringRequest = new StringRequest(Request.Method.POST, Config.ROOT + Config.GETRUGSIDS, new Response.Listener<String>() {
@Override
public void onResponse(String response) {
drID=response.trim();
// Toast.makeText(getApplicationContext(), response, Toast.LENGTH_LONG).show();
}
}, new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
if (error instanceof TimeoutError) {
Toast.makeText(getApplicationContext(), "time out Error", Toast.LENGTH_LONG).show();
} else if (error instanceof NoConnectionError) {
Toast.makeText(getApplicationContext(), "no Connection Error", Toast.LENGTH_LONG).show();
} else if (error instanceof AuthFailureError) {
Toast.makeText(getApplicationContext(), "Authenticatin Failure Error", Toast.LENGTH_LONG).show();
} else if (error instanceof NetworkError) {
Toast.makeText(getApplicationContext(), "Network Error", Toast.LENGTH_LONG).show();
} else if (error instanceof ServerError) {
Toast.makeText(getApplicationContext(), "Server Error", Toast.LENGTH_LONG).show();
} else if (error instanceof ParseError) {
Toast.makeText(getApplicationContext(), "JASON Parse Error", Toast.LENGTH_LONG).show();
}
}
}) {
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> params = new HashMap<String, String>();
params.put("drNAM",drugName);
return params;
}
};
MySingleton.getInstance(getApplicationContext()).addToRequestQueue(stringRequest);
return drID;
}
你不打电话,结果做任何事情的方法getDrugId(drugNames.get(i));
。
你可能应该使用结果作为索引,就像这样吧?
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> params = new HashMap<String, String>();
for (int i = 0; i<drugNames.size(); i++){
params.put("drid["+getDrugId(drugNames.get(i))+"]",drugNames.get(i));
params.put("paid", 1+"");
}
return params;
}
它像这样params.put(“drid [”+ i +“]”,getDrugId(drugNames.get(i))); – NawalSalameh
将值放入参数映射之前,您正在调用方法getDrugId(drugNames.get(i));但没有对结果做任何事情,为什么? –
我打电话给方法“getDrugId(drugNames.get(i)))”从mysql获取“drugId值”,通过sendeng的药物名称,我会发布完整的代码 – NawalSalameh
getDrugId(drugNames.get(i));
这是应该返回一些值,对不对?但是你无法分配方法调用返回的代码的外观。另外,如果您考虑利用此方法调用返回的内容,是否可以调试并检查getDrugId(xxx)
正在返回?
我调试了方法,它返回一个值,但是当我把它放在getparams()里什么都没发生 – NawalSalameh
你可以参考这个:http://stackoverflow.com/questions/24285544/android-volley-http-request-custom-header/24402403#24402403和http:/ /stackoverflow.com/questions/24284651/volley-not-calling-getparams-for-standard-post-request –
你可以共享整个代码 – Athul