2013-10-27 46 views
0

我有一個列表視圖,在該列表視圖上附加了一個長單擊監聽器。在這個長時間的點擊監聽器中,我向用戶顯示了一個彈出式菜單,帶有諸如「刪除」之類的選項。當從該菜單中按下刪除時,我需要參考觸發長按聽衆的列表項的視圖,以便我可以刪除該列表項。我需要點擊偵聽器內部的引用。我該怎麼做,請幫助。這是我的代碼。獲取啓動對話框的列表項的引用

listview.setOnItemLongClickListener(new OnItemLongClickListener() { 
@Override 
public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) { 
    CharSequence options[]={"Delete"}; 
    AlertDialog.Builder symbolOptions=new Builder(context); 
    symbolOptions.setItems(options, new OnClickListener() { 
    @Override 
    public boolean onItemLongClick(AdapterView<?> parent, View view, int position, long id) { 
     CharSequence options[]={"Delete"}; 
     AlertDialog.Builder symbolOptions=new Builder(context); 
     symbolOptions.setItems(options, new OnClickListener() { 
     public void onClick(DialogInterface thisDialog, int which) { 
     //TODO Auto-generated method stub 
     switch (which) { 
     case 0: 
     //Reference to the list item which initiated the long click listener 
     // Delete that list item 
     break; 
     default: 
     thisDialog.dismiss(); 
     break; 
} 

回答

0

你可以這樣做......

把列表項的所有ID在一個ArrayList中。說....

ArrayList<Integer> itemids = new ArrayList<Integer>(); 

然後在onItemLongClick ...

int selected_item_id = itemids.get(position); 

現在你知道你點擊的項目的ID。希望能幫助到你。

+0

不會工作,因爲我希望該ID用於另一種方法,即onclick。 – Sourabh

+0

我想你可以通過其他方法獲得id,如果你全局地聲明瞭selected_item_id。 –

+0

你已經解決了這個問題嗎?請分享,如果你能做到這一點。這對我有幫助。 –

0

通過將位置和項目名稱保存爲該類的全局變量並從內部函數訪問它們來解決該問題。我不知道這是否正確,但我認爲這是一個非常普遍的特徵,應該有更好的方法來做到這一點。現在,我必須留下來。