2017-09-29 22 views
0

所以,我有一个由JSON解析创建的ListView,我希望一旦从ListView中选择一个项目被添加到另一个ArrayList,在那里我使用HashMap,因为它是一个数据包。问题是,如果我选择一个它可以正常工作,但是一旦我选择第二个,那么我的ArrayList将会有第二个两次,如果我再次执行第三个三等等。我附上下面的代码部分,任何帮助将不胜感激。从列表视图与HashMap创建ArrayList重复,而不是添加

lv.setOnItemClickListener(new AdapterView.OnItemClickListener() { 

       public void onItemClick(AdapterView<?> adapter, View v, int position, long id) { 

        Toast.makeText(getApplicationContext(), 
          "Bookmarked", 
          Toast.LENGTH_LONG) 
          .show(); 


//adding the data from the list view to the HashMap object 

        HashMap<String, String> obj = (HashMap<String, String>) adapter.getItemAtPosition(position); 
        String name = (String) obj.get("name"); 
        String rating = (String) obj.get("rating"); 
        String summary = (String) obj.get("summary"); 
        String date = (String) obj.get("publ. date"); 
        String type = (String) obj.get("type"); 
        String suggested_link = (String) obj.get("suggested_link_text"); 
        String link = (String) obj.get("link"); 


        bookmarked.put("rating", rating); 
        bookmarked.put("name", name); 
        bookmarked.put("summary", summary); 
        bookmarked.put("publ. date", date); 
        bookmarked.put("type", type); 
        bookmarked.put("suggested_link_text", suggested_link); 
        bookmarked.put("link", link); 


//the ArrayList that contains the HashMap data 
        selected.add(bookmarked); 

        Log.v("Selected: ", selected.toString()); 

       }}); 

回答

0

那是因为你覆盖的每次点击的bookmarked对象,你每次添加此相同的对象添加到列表。 该解决方案是创建一个新的bookmarked对象每次:

HashMap<String, String> bookmarked = new HashMap<String, String>(); 
bookmarked.put("rating", rating); 
       bookmarked.put("name", name); 
       bookmarked.put("summary", summary); 
       bookmarked.put("publ. date", date); 
       bookmarked.put("type", type); 
       bookmarked.put("suggested_link_text", suggested_link); 
       bookmarked.put("link", link); 
+0

是定了!非常感谢!:) – doomspirospero

+0

@doomspirospero将它标记为答案? – Neeraj

相关问题