2016-01-29 35 views
0

我在一個項目上工作,下面我的代碼基本上需要一個對象數組,並將Id設置爲每個對象,但是,當我點擊我的對象時,我想獲得該Id。我嘗試了一個局部變量,我只能得到最後一個對象的Id,我該怎麼做?我想獲得String的值Answerid = currentQuestions.getString(「id」);到我的OnDown clicklistener。如何將數組中的值存入void onclicklistener?

mVolleySingleton = VolleySingleton.getInstance(); 
    mRequestQueue = mVolleySingleton.getRequestQueue(); 

    JsonArrayRequest request = new JsonArrayRequest(Request.Method.GET, URL_ANSWER, (String) null, new Response.Listener<JSONArray>() { 
     @Override 
     public void onResponse(JSONArray response) { 
      listblogs = parseJSONResponseQuestion(response); 
      mAdapterQuestion.setBloglist(listblogs); 
      System.out.println(response); 
      System.out.println("it worked!!!"); 
     } 

    }, new Response.ErrorListener() { 
     @Override 
     public void onErrorResponse(VolleyError error) { 
      System.out.println(error); 

     } 
    }); 
    mRequestQueue.add(request); 
} 

String globalVar = " "; 

private ArrayList<Blogs> parseJSONResponseQuestion(JSONArray response) { 
    if (!response.equals("")) { 
     ArrayList<Blogs> blogsArrayList = new ArrayList<>(); 
     try { 
      StringBuilder data = new StringBuilder(); 
      for (int i = 0; i < response.length(); i++) { 
       JSONObject currentQuestions = response.getJSONObject(i); 
       String text = currentQuestions.getString("text"); 
       String questionId = currentQuestions.getString("questionId"); 
       String votes = currentQuestions.getString("votes"); 
       String Answerid = currentQuestions.getString("id"); 
       System.out.println(response.length() + "length"); 

       data.append(text + Answerid + "\n"); 

       System.out.println(data); 
       Blogs blogs = new Blogs(); 
       blogs.setMtext(text); 
       blogs.setVotes(votes); 
       blogs.setId(Answerid); 
       System.out.print(Answerid); 
       listblogs.add(blogs); 
      } 
      System.out.println(data.toString()); 
     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 
    } 

    return listblogs; 
} 

public void OnDown(View view) { 

    System.out.println("VOTED Down"); 
    final RequestQueue mrequestQueue = VolleySingleton.getInstance().getRequestQueue(); 
    final String PUT_VOTE_UP = "someURL"; 

    StringRequest PostVoteUp = new StringRequest(Request.Method.PUT, PUT_VOTE_UP, new Response.Listener<String>() { 
     @Override 
     public void onResponse(String response) { 
      System.out.println(response + "reponse"); 

     } 

    }, new Response.ErrorListener() { 
     @Override 
     public void onErrorResponse(VolleyError error) { 
      error.printStackTrace(); 
      System.out.println("************Answer" + error + "error"); 
     } 
    }); 
    mrequestQueue.add(PostVoteUp); 
    System.out.println("VOTED DOWN"); 

} 

}

+0

我能問,什麼是正在點擊的視圖?你在返回之後使用'listblogs'在哪裏?如果被點擊的視圖有ID,那麼有一個解決方案,或者如果你使用的是ListView或RecyclerView或類似的東西,我們也可以找出一些東西。 –

+0

這是一些適配器?你需要發佈你的getView()方法 – Gavriel

回答

0

點擊監聽OnDown(View view)得到被點擊美景。這是您識別點擊內容的唯一方法。

您應該使用View.getTag()來獲取ID:

Object obj = view.getTag(); 

的問題是在哪裏可以添加此代碼來設置它:

View view = ...; // new View()? 
view.setTag(object); 
+0

你是什麼意思查看視圖= ??? – Eli

相關問題