2013-06-17 2 views
0

У меня возникли проблемы с использованием пункта меню на панели действий с использованием slidingmenu library с actionbarsherlock.Невозможно создать элемент меню панели действий с помощью actionbarsherlock

Любой может помочь?

Вот код

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
    case android.R.id.home: 
     toggle(); 
     return true;   
    } 
    return onOptionsItemSelected(item); 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getSupportMenuInflater().inflate(R.menu.menu, menu);   
    return true; 
} 

это menu.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android" > 

<item 
    android:id="@+id/print" 
    android:title="@string/printItem" 
    android:icon="@drawable/ic_print" 
    android:showAsAction="always" /> 
<item 
    android:id="@+id/share" 
    android:title="@string/shareItem" 
    android:icon="@drawable/ic_action_share" 
    android:showAsAction="always" 
    android:actionProviderClass="android.widget.ShareActionProvider" />  

Мой LogCat говорит, что я столкнулся ошибки во время выполнения на

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getSupportMenuInflater().inflate(R.menu.menu, menu);   
    return true; 
} 
+0

Ваш LogCat говорит, что вы есть '' NullPointerException' в android.week08.fragments.MAPFragment.onStart' - как это связано с кодом вы отправили? – ianhanniballake

+0

@ianhanniballake Я использую фрагмент карты для отображения вида карты в viewpager. Это отлично работает на моем реальном устройстве, эти журналы вставляются из моего эмулятора, у которого нет сервиса google play. Проблема заключается в том, что я не использую 'getSupportMenuInflater(). Inflate (R.menu.menu, menu);' и программно добавлять пункт меню, это сработало. Я не понимаю причину :( – babygau

+0

Итак, в чем проблема с вашим меню? Отправьте свой логарифм о том, какие ошибки вы получили, которые относятся к вашему меню. – ianhanniballake

ответ

0

Дон» я действительно понимаю ваши вопрос. Этот код работает в моем приложении.

в MainActivity

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
    case android.R.id.home: 
     toggle(); 
     break; 
    case R.id.print: 
     //your code 
     break; 
    case R.id.share: 
     //your code 
     break; 
    default: 
     return false; 
    } 
    return true; 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.menu, menu); 
    return true; 
} 

в Фрагмент

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setHasOptionsMenu(true); 
} 

@Override 
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) { 
    menu.clear(); 
    inflater.inflate(R.menu.menu_fragment,menu); 
    super.onCreateOptionsMenu(menu, inflater); 
} 
+0

Я думаю, проблема в том, что я использую viewpager с 2 fr agments. Если я удалю 'getSupportMenuInflater(), надуйте (R.menu.menu, menu);' и программно добавьте пункт меню, это сработало. Я не понимаю причину :( – babygau

+0

в моей MainActivity расширяет _FragmentActivity_, и он отлично работает с 'getMenuInflater(). Inflate (R.menu.menu, menu);' – Gina

+0

Я просто обновляю свой logcat в сообщении. пожалуйста, посмотрите – babygau

Смежные вопросы