2016-12-16 474 views
0

我想從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

回答

0

你不打電話,結果做任何事情的方法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

0

getDrugId(drugNames.get(i));這是應該返回一些值,對不對?但是你無法分配方法調用返回的代碼的外觀。另外,如果您考慮利用此方法調用返回的內容,是否可以調試並檢查getDrugId(xxx)正在返回?

+0

我調試了方法,它返回一個值,但是當我把它放在getparams()裏什麼都沒發生 – NawalSalameh

+0

你可以參考這個: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 –