来自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; 
 
    }

+0

你可以共享整个代码 – Athul

你不打电话,结果做任何事情的方法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; 
      } 
+0

它像这样params.put(“drid [”+ i +“]”,getDrugId(drugNames.get(i))); – NawalSalameh

+0

将值放入参数映射之前,您正在调用方法getDrugId(drugNames.get(i));但没有对结果做任何事情,为什么? –

+0

我打电话给方法“getDrugId(drugNames.get(i)))”从mysql获取“drugId值”,通过sendeng的药物名称,我会发布完整的代码 – NawalSalameh

getDrugId(drugNames.get(i));这是应该返回一些值,对不对?但是你无法分配方法调用返回的代码的外观。另外,如果您考虑利用此方法调用返回的内容,是否可以调试并检查getDrugId(xxx)正在返回?

+0

我调试了方法,它返回一个值,但是当我把它放在getparams()里什么都没发生 – NawalSalameh

+0

你可以参考这个:http://*.com/questions/24285544/android-volley-http-request-custom-header/24402403#24402403和http:/ /*.com/questions/24284651/volley-not-calling-getparams-for-standard-post-request –