0

我有一個listView,我使用loader1/adapter1contentUri1填充。Android ListView - 通過數據庫表選擇元素ID

我現在需要做的是監測contentUri2loader2爲了更新在同一listView與項目的額外數據。

所以爲了做到這一點,我想知道是否有什麼辦法,我可以選擇由他們的底層數據庫表ID從listView元素(如數據庫表ID是常見的contentUri1contentUri2)?

(我認爲一個解決辦法是創建和使用一個單一的contentUri3它整合從contentUri1contentUri2的數據,但我寧可不要採取這種方法,如果可以避免的。)

任何其他解決方法/建議還讚賞。

+1

你可以嘗試使用數據庫表ID在每個listView項目上設置標籤。然後,你可以調用getTag來確定你想要選擇哪一個。 –

+1

按照http://stackoverflow.com/questions/10644142/setting-tags-to-each-item-in-a-listview-in-android(?) –

回答

0

是的,您可以創建一個Model類,其中包含contentUri和id。喜歡的東西:

public class ListContents { 

    private Uri contentUri; 
    private int id; 

    public ListContents(Uri contentUri, int id) { 
     this.contentUri = contentUri; 
     this.id = id; 
    } 

    public Uri getContentUri() { 
     return this.uri: 
    } 

    public int getId() { 
     return this.id; 
    } 

} 

然後,您可以創建這個類的一個ArrayList,你將能夠檢索與每一個contentUri相關聯的ID。希望這可以幫助

0

您可以使用不可見的textView來存儲id的值。

ArrayList<HashMap<String, String>> hashExample = new ArrayList<>(); 


      Integer id = 1 ; 
      String value = "value"; 

       HashMap<Integer, String> map = new HashMap<>(); 
       map.put("ID", "" + id); 
       map.put("VALUE", value); 
       hashExample.add(map);     


      String[] from = {"ID", "VALUE"}; 
      int[] to = {R.id.txtID, R.id.txtValue}; 
      adapter = new SimpleAdapter(getActivity(), hashExample, 
        R.layout.list_item_example, from, to); 
      ListView list = (ListView) getView().findViewById(R.id.listView); 

      list.setAdapter(adapter); 

檢索數據,實現這個在onItemClickListener什麼

 list.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
        public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { 

        Integer id = Integer.valueOf(((Map<String, String>) adapter.getItem(arg2)).get("ID")); 

         String value= ((Map<String, String>) adapter.getItem(arg2)).get("VALUE"); 

        } 
       }); 

希望它能幫助。

0

無論你是填充你的listView標籤添加到單個項目:

YourListItemView.setTag(YourTagKey, YourTagValue); 

然後,當你需要的時候,調用getTag在視圖來檢索標籤:

String tagValue = YourListItemView.getTag(YourTagKey);