5

Я уже внедрил пользовательский вид для своего рабочего стола. Наряду с этим мне также нужен OptionMenu. Есть ли способ использовать параметр OptionMenu по умолчанию? Я не хочу самостоятельно создавать все меню &.Меню «Создать параметры» с настраиваемой панелью действий/панели инструментов

BTW, моя деятельность распространяется android.support.v7.app.AppCompatActivity


код реализовать настраиваемое представление для моего ActionBar

custom_action_bar.xml

<?xml version="1.0" encoding="utf-8"?> 
<android.support.v7.widget.Toolbar 
xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 
app:contentInsetEnd="0dp" 
app:contentInsetStart="0dp"> 

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content"> 

    <Button 
     android:id="@+id/custom_B" 
     android:layout_width="60dp" 
     android:layout_height="30dp" /> 
</LinearLayout> 
</android.support.v7.widget.Toolbar> 

Я включил его в свой основной XML:

<include 
layout="@layout/custom_action_bar" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" /> 

Для OptionsMenu я ставлю некоторые журналы, которые никогда не напечатанных

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    Log.i(Constants.APP_NAME, "hello1"); 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    Log.i(Constants.APP_NAME, "hello2"); 
} 
+0

Я не знаю, можете ли вы использовать опциональный OptionMenu по умолчанию с пользовательским actionBar. Но вы можете создать настраиваемый OptionMenu, чтобы проверить это [ссылка] (http://rajeshandroiddeveloper.blogspot.in/2013/07/android-popupwindow-example-in-listview.html) –

+0

Какая у вас проблема? Поскольку вы расширяете панель инструментов, вы должны иметь возможность использовать это меню. Покажите, что вы пробовали и какую проблему у вас есть. – JDenais

+1

Я собираюсь угадать и сказать, что вы забыли вызвать setSupportActionBar() в своей деятельности. Если вы этого не вызываете, то соответствующие методы меню никогда не вызываются (потому что бесполезны). Но на самом деле вы должны были разместить больше своего кода деятельности. – JDenais

ответ

3

Не забудьте позвонить setSupportActionBar() в вашей деятельности.

Без этого вызова связанные методы меню никогда не вызываются, потому что Activity считает, что нет панели инструментов.