2016-04-13 10 views
1

Android Volleyライブラリを使用して画像とテキストを送信できます。しかし、Volleyライブラリを使って送るために画像をオプションにすることはできますか?Androidボレーを使用して画像またはテキストを送信するか、またはその両方を使用します。

テキストのみを送信しようとすると、Java null pointer exceptionがスローされました。

private void uploadImage(){ 
    //Showing the progress dialog 
    final ProgressDialog loading = ProgressDialog.show(this,"Uploading...","Please wait...",false,false); 
    StringRequest stringRequest = new StringRequest(Request.Method.POST, UPLOAD_URL, new Response.Listener<String>() { 
     @Override 
     public void onResponse(String s) { 
      //Disimissing the progress dialog 
      loading.dismiss(); 
      //Showing toast message of the response 
      Toast.makeText(PostActivity.this, s, Toast.LENGTH_LONG).show(); 
     } 
    }, 
    new Response.ErrorListener() { 
     @Override 
     public void onErrorResponse(VolleyError volleyError) { 
      //Dismissing the progress dialog 
      loading.dismiss(); 

      //Showing toast 
      Toast.makeText(PostActivity.this, volleyError.getMessage(), Toast.LENGTH_LONG).show(); 
     } 
    }) { 
     @Override 
     protected Map<String, String> getParams() throws AuthFailureError { 
      //Converting Bitmap to String 
      String rimage = null; 
      try { 
       rimage = getStringImage(bitmap); 
      } catch (UnsupportedEncodingException e) { 
       e.printStackTrace(); 
      } 

      //Getting Image Name 
      String FName = FoodName.getText().toString().trim(); 
      String LName = user.username; 

      //Creating parameters 
      Map<String, String> params = new Hashtable<String, String>(); 

      //Adding parameters 
      params.put(KEY_IMAGE, rimage); 
      params.put(KEY_NAME, FName); 
      params.put(KEY_LOGIN,LName); 

      //returning parameters 
      return params; 
     } 
    }; 

    //Creating a Request Queue 
    RequestQueue requestQueue = Volley.newRequestQueue(this); 

    //Adding request to the queue 
    requestQueue.add(stringRequest); 
} 
+1

私が正しくあなたの質問を理解していれば、あなたは 'params.put(KEY_IMAGE、リマージュ)を削除する必要があり、オプションで作るためにあなたのコードから'、またはあなたがヌルのためにそれを確認することができます値 'if(someImage!= null){params.put(KEY_IMAGE、rimage); } ' –

答えて

0
@Override 
     protected Map<String, String> getParams() throws AuthFailureError { 
      //Converting Bitmap to String 
      String image = getStringImage(bitmap); 

      //Getting Image Name 
      String name = editTextName.getText().toString().trim(); 

      //Creating parameters 
      Map<String,String> params = new Hashtable<String, String>(); 

      //Adding parameters 
      params.put(KEY_IMAGE, image); 
      params.put(KEY_NAME, name); 

      //returning parameters 
      return params; 
     } 
1
You can check you image string as null or not ! If it is not null then send it. 


    @Override 
      protected Map<String, String> getParams() throws AuthFailureError { 
       //Converting Bitmap to String 
       String rimage = null; 
       try { 
        rimage = getStringImage(bitmap); 
       } catch (UnsupportedEncodingException e) { 
        e.printStackTrace(); 
       } 

       //Getting Image Name 
       String FName = FoodName.getText().toString().trim(); 
       String LName = user.username; 

       //Creating parameters 
       Map<String, String> params = new Hashtable<String, String>(); 

       //Adding parameters 
       if(rimage!=null) 
       { 
       params.put(KEY_IMAGE, rimage); 
       } 
       params.put(KEY_NAME, FName); 
       params.put(KEY_LOGIN,LName); 

       //returning parameters 
       return params; 
      } 
     }; 
関連する問題