2013-10-22 124 views
1

得到的名字,我有一個列表如下從選擇的列表項

public static StickyListHeadersListView friendList; 

friendList = (StickyListHeadersListView) view.findViewById(R.id.friendList); 

我的ContextMenu

registerForContextMenu(friendList); 

public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) { 
    Log.d("Contex menu position : ", ""+v.getId()); 

} 

想我的名單就像是

item 1 

item 2 

item 3 

如何登錄註冊它我點擊哪個項目調用了上下文菜單? 假設我按住 「項目2」,然後我希望看到 「第2項」 打印日誌

側面說明

public class StickyListHeadersListView extends ListView 
+0

您使用ListActivity或活動? –

+0

這是使用外部庫創建的StickyListHeadersListView – user2729183

+0

friendList是Activity或Activity List的子類嗎? –

回答

3

這樣做:

@Override 
public void onCreateContextMenu(ContextMenu menu, View v, 
     ContextMenuInfo menuInfo) { 
    super.onCreateContextMenu(menu, v, menuInfo); 

    // Get the position of the pressed item from the Adapter 
    AdapterContextMenuInfo info = (AdapterContextMenuInfo) menuInfo; 
    int itemPos = info.position; 
    Log.d("Contex menu position : ", ""+ itemPos); 

} 
+0

感謝它的工作 – user2729183

+0

不客氣。 –

0

試試這個..

全球

private String[] MenuItems = {"item 1", "item 2", "item 3"}; 
AdapterView.AdapterContextMenuInfo info; 

OnCreate後

 @Override 
     public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) 
     { 
      if (v.getId()==R.id.friendList) 
      {  
       menu.setHeaderTitle("Options"); 
       for (int i = 0; i< MenuItems.length; i++) 
       { 
        menu.add(Menu.NONE, i, i, MenuItems[i]); 
       } 
      } 
     } 




    @Override 
     public boolean onContextItemSelected(MenuItem item) 
     { 
      info = (AdapterView.AdapterContextMenuInfo)item.getMenuInfo(); 

      // Getting the Id 
      int menuItemIndex = item.getItemId(); 

      if(menuItemIndex == 0) 
      { 
Toast.makeText(YourActivity.this, "Clicked Item Position :"+info.position+"\n"+"Seleted Option Id :"+menuItemIndex, Toast.LENGTH_SHORT).show(); 
} 
      else if(menuItemIndex == 1) 
      { 
Toast.makeText(YourActivity.this, "Clicked Item Position :"+info.position+"\n"+"Seleted Option Id :"+menuItemIndex, Toast.LENGTH_SHORT).show(); 
} 
      else if(menuItemIndex == 2) 
      { 
Toast.makeText(YourActivity.this, "Clicked Item Position :"+info.position+"\n"+"Seleted Option Id :"+menuItemIndex, Toast.LENGTH_SHORT).show(); 
} 

      return true; 
     } 
+0

感謝您的答案。但我需要獲取onCreateContextMenu方法中的文本。我的想法是爲列表中的某個項目顯示不是所有項目的項目菜單。 – user2729183