1
調用invalidateOptionsMenu()內片段這裏是我的代碼,首先:使用程序兼容性
@Override
public void onPrepareOptionsMenu(Menu menu) {
super.onPrepareOptionsMenu(menu);
try {
menu.findItem(R.id.action_user_search).setVisible(true);
menu.findItem(R.id.action_view_spots).setVisible(false);
getActivity().invalidateOptionsMenu();
} catch (Exception e) {
// do nothing; always null when looking at other people's profile
}
}
這發生在一個片段中。我在本文中使用最新的AppCompat
主題。如果您使用AppCompat
,supportInvalidateOptionsMenu();
,但我聽說有另一種方法可以調用此方法,但這是無法識別的。
當我開始應用程序轉到此特定時,會發生什麼情況,Fragment
,SearchView
圖標確實顯示,但不響應觸摸。上面的第二項不會隱藏,因爲假設。
我在做什麼錯?
編輯由REQUEST
這在ActionBarActivity
只調用,而不是Fragment
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
toggleSlidingMenu();
return true;
case R.id.action_view_spots:
Intent mapLoc = new Intent(MainActivity.this,
MapLocationsActivity.class);
startActivity(mapLoc);
return true;
default:
return super.onOptionsItemSelected(item);
}
}
這裏是我的XML
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/action_user_search"
app:actionViewClass="android.support.v7.widget.SearchView"
android:icon="@android:drawable/ic_menu_search"
app:showAsAction="always"
android:title="Find User"/>
<item
android:id="@+id/action_view_spots"
android:icon="@android:drawable/ic_menu_mapmode"
app:showAsAction="ifRoom"
android:title="Map View"/>
</menu>
'onOptionsItemSelected'的代碼是什麼? – 2014-11-05 18:30:39
@PedroOliveira我不會在Fragment中調用它,但是'ActionBarActivity()' - 我會在 – KickingLettuce 2014-11-05 18:32:08
之上加上它。'supportInvalidateOptionsMenu'如何被無法識別?它只能在'ActionBarActivity/FragmentActivity'上調用。你有沒有嘗試將你的'getActivity()'轉換爲其中的一個並調用它? – 2014-11-05 18:34:28