2011-11-04 50 views
0

我想獲得自定義列表視圖的位置(從原始列表位置排序後)。這是因爲列表項的數據庫ID與列表視圖項的位置匹配。所以,我需要得到排序項目的正確位置與列表視圖項目位置匹配。我有這個代碼。如何從Android中的自定義ListView中獲取點擊的物品位置?

@Override 
public Object getItem(int position) { 
    // TODO Auto-generated method stub 
    return sampleArrayList.get(position); 
} 

@Override 
public long getItemId(int position) { 
    // TODO Auto-generated method stub 
    return position; 
} 

但我發現我需要把這個位置放到我的主要活動中。任何幫助真的讚賞和感謝提前...

+0

您的意思是點擊項目的位置? –

+0

你能否提供一些更多的細節和代碼。你是否需要在列表視圖中點擊項目時獲得位置? – Karthi

+0

ya。我需要點擊項目的位置,但排序後位置發生變化。 –

回答

1

我懷疑,我完全理解你的問題和你想要的東西。但我可以建議你,你可以維護HashMap來存儲每個listview的位置id對。

public static HashMap<Integer,String> myList=new HashMap<Integer,String>(); 
在getView

():

在CustomAdapter

String id= (fetch _id from database); 
myList.put(position, id); 

現在在你的主胡亞蓉,你可以通過把此行的onClick檢索每個列表項的_id()的OnItemClickListener():

Long id=Long.parseLong(CustomAdapter.myList.get(position)); 
+0

爲什麼我們應該在getview中獲取數據庫ID?我們可以在主要活動本身na?有什麼特別的用途呢? –

+0

這會將listitem的位置與附加到該項目的數據庫的_id綁定。因此,您可以輕鬆地在收聽項目單擊時處理該記錄。 – Hiral

+0

這會讓你得到正確_id的listitem點擊,在任何位置,listitem是...試試這個。 – Hiral

-1

您可以在自定義適配器mCurrentPosition定義一個字段,將其詮釋的方法從活動

View getView(final int position, View convertView, ViewGroup parent) {< 
this.mCurrentPosition = position; 
.... 
} 

進入這一領域。

+1

我照你說的做了。它只顯示列表視圖的最後一個位置。我點擊最後的位置被選中。 –

相關問題