2017-03-27 6 views
0

この「_id」が以下のような別のAPIを打つと応答として得られている間に、リクエスト "_id"を1つのAPIに渡したい。同じアクティビティ内の異なるAPIにオブジェクト(あるAPIからの応答を得る)を渡す方法

両方のAPIが同じアクティビティで呼び出しています。

注:「_id」は、別のAPIに「_id」を渡したいときに、1つのAPIを押した後に応答しています。だから、どのように私は別の要求として、この "_id" を得ることができます応答 "_id" を取得するための

{ 
    "success": true, 
    "count": 3, 
    "logs": [ 
    { 
     "_id": 2, 
     "user": "17", 
     "__v": 0, 
     "value": 125, 
     "unit": "litres", 
     "savedDT": "2017-03-22T03:44:20.799Z" 
    }, 
    { 
     "_id": 0, 
     "user": "17", 
     "__v": 0, 
     "value": 123, 
     "unit": "ml", 
     "savedDT": "2017-03-22T03:38:21.142Z" 
    }, 
    { 
     "_id": 1, 
     "user": "17", 
     "__v": 0, 
     "value": 123, 
     "unit": "litres", 
     "savedDT": "2017-03-22T03:38:21.142Z" 
    } 
    ] 
} 

コード

private void getwaterlog(String token) { 

     // Tag used to the request 
     String tag_string_req = "req_register"; 

     pDialog.setMessage("Registering ..."); 
     showDialog(); 

     StringRequest strReq = new StringRequest(Request.Method.POST, 
       AppConfig.WATER_All_LOG_API, new Response.Listener<String>() { 

      @Override 
      public void onResponse(String response) { 
       Log.d(TAG, "Register Response: " + response.toString()); 
       hideDialog(); 


    try { 
         JSONObject jObj = new JSONObject(response); 
         boolean success = jObj.getBoolean("success"); 

         if (success) { 

          String count = jObj.getString("count"); 
          JSONArray jArray = jObj.getJSONArray("logs"); 
          for(int i = 0; i < jArray.length(); i++) 
          { 
           JSONObject object = jArray.getJSONObject(i); 
           String _id = object.getString("_id"); 


           String user = object.getString("user"); 
           String __v = object.getString("__v"); 
           String value = object.getString("value"); 
           String unit = object.getString("unit"); 
           String savedDT = object.getString("savedDT"); 
          } 

を - :

"_id" は、応答以下のようになってきています同じ活動のAPI。

私は、ボタンclicklistener以下では、この "_id" にしたい: -

btn_water_delete.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 


        Intent i = getIntent(); 

        String token = i.getStringExtra("token"); 

        //String "_id" = 
        deletewater(token,waterId); 

       } 
      }); 
+0

もう1つの 'AsyncTask'を呼び出して他のAPIを呼び出します。 AsyncTaskのコンストラクタまたは 'execute'メソッドで' _id'を渡します。 –

+0

@Prera​​k Sola私はVolley Libraryを使用しています。どのようにこの "_id"を別のAPIにするのですか – user6313669

+0

@Prera​​kSola btn_water_delete.setOnClickListenerでこの "_id"を呼びたいと思います。同じコードを追加しましたか確認してください。 – user6313669

答えて

0

あなたは)doInBackground(下の要求を行うのHttpClientを使用してAPIを呼び出すAsynTaskを使用することができます。最初の要求応答が受信されたときに2番目の要求を応答する応答

+0

私はvolleyライブラリを使用していますが、この "_id"を取得するには問題に直面しています。 – user6313669

+0

最初のAPIのonResponse(JSONArrayレスポンス)メソッドで別のAPIを呼び出して、 –

+0

を呼び出します。ここで、getwaterlog()は?? –

関連する問題