2010-04-07 94 views
18

我正在使用XML文件爲我的ListView創建上下文菜單。 (請參閱下文)。我也想爲這個上下文菜單設置一個頭。我閱讀(在http://www.mail-archive.com/[email protected]/msg43062.html),我可以在onCreateContextMenu方法中使用menu.setHeaderTitle(myContextMenuTitle)。但我需要將其設置爲XML文件。我怎樣才能做到這一點?如何使用XML文件創建上下文菜單?

以下爲onCreateContextMenu方法的代碼,糾正我,如果我做錯什麼.. 這是我context_menu.xml文件:

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item android:id="@+id/open" android:title="Open"/> 
</menu> 

這是我onCreateContextMenu方法:

@Override 
public void onCreateContextMenu(ContextMenu menu, View v, 
    ContextMenuInfo menuInfo) { 
    MenuInflater inflater = getMenuInflater(); 
    inflater.inflate(R.menu.context_menu, menu); 
    super.onCreateContextMenu(menu, v, menuInfo); 
} 

這是我的onCreate方法:

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 
    // extras = getIntent().getExtras(); 

    registerForContextMenu(getListView()); 

    ... 
} 

回答

11

你必須按照你現在這樣做的方式去做。

+0

這是否意味着我們不能通過XML來實現? – Vasu 2010-04-08 03:24:44

+1

是的。唯一的方法是通過menu.setHeader – 2010-04-08 12:32:37

17

您可以在菜單對象中調用setHeaderTitle("mytitle")方法。 在覆蓋方法中,您將菜單對象作爲參數OnCreateContextMenu方法的參數。 是這樣的:

@Override 
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { 
    super.onCreateContextMenu(menu, v, menuInfo); 
    menu.setHeaderIcon(R.drawable.icon); 
    menu.setHeaderTitle("Share Menu."); 
    MenuInflater inflater = getMenuInflater(); 

    inflater.inflate(R.menu.contextmenu, menu); 
}