我覺得這可能是一個愚蠢的問題,但我不知道該怎麼做。Android SubMenus點擊時沒有做任何事情
我有一個正常工作的菜單。在一個菜單中的項目:「搜索」帶來了不同的項目,如「餐廳」子菜單,「咖啡館」等
下面是XML代碼創建菜單和子菜單:
<?xml version="1.0" encoding="utf-8"?>
<menu
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/new_entry"
android:title="@string/new_entry"
android:icon="@drawable/add_new">
</item>
<item android:id="@+id/search"
android:title="@string/search"
android:icon="@drawable/search">
<menu>
<item android:id="@+id/five"
android:title="@string/five">
</item>
<item android:id="@+id/ten"
android:title="@string/ten">
</item>
<item android:id="@+id/fifteen"
android:title="@string/fifteen">
</item>
<item android:id="@+id/restaurant"
android:title="@string/restaurant">
</item>
<item android:id="@+id/cafe"
android:title="@string/cafe">
</item>
<item android:id="@+id/sandwich"
android:title="@string/sandwich">
</item>
</menu>
</item>
<item android:id="@+id/info"
android:title="@string/info_short"
android:icon="@drawable/info">
</item>
然後在我的活動課,我有:
// Initialise Menu.
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu_services, menu);
return true;
}
和:
// Create cases for each menu selection.
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.new_entry:
createFood();
return true;
case R.id.search:
return true;
case R.id.cafe:
Log.d(TAG, "In Cafe SubMenu");
Toast.makeText(getApplicationContext(), TAG, Toast.LENGTH_SHORT);
return true;
case R.id.info:
info();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
「onOptionsItemSelected」中的每個例子都做它應該做的事情,除了「case R.id.cafe:」這是子菜單。在這裏它應該發佈到LogCat和一個Toast進行測試,但是都沒有。
我缺少什麼?
感謝