0

У меня есть OptionsMenu, который будет содержать только два элемента настроек и выход из системы. Чтобы реализовать это, я повторяю один и тот же код в каждом действии. то есть реализации onCreateOptionsMenu и onOptionsItemSelected методов в каждом действии.Есть ли лучший способ или библиотека, чтобы обрабатывать меню опций в панели действий/панели инструментов Android.

Есть ли лучший способ сделать это? Я вижу, что он повторяет один и тот же код снова и снова. Если у меня будет десять занятий, я делаю это в десять.

Пожалуйста, предложите лучший способ сделать это. Есть ли способ реализовать его в одном месте и т.д.

Надеюсь, у меня есть смысл.

Спасибо!

+0

Нет библиотеки, насколько мне известно - просить рекомендации по библиотеке - это определенный способ, чтобы ваш вопрос проголосовал за закрытие (это не разрешено на SO). – Booger

+0

Используйте BaseActivity, где вы можете реализовать эти методы для всех вспомогательных операций. –

ответ

2

хорошо OO практике, если расширить класс Android Activity с требованиями меню по умолчанию Как так:.

import android.app.Activity; 
import android.view.Menu; 
import android.view.MenuItem; 

public class OptionsMenuActivity extends Activity { 
    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     super.onCreateOptionsMenu(menu); 
     menu.add(Menu.NONE, 0, 0, "Settings"); 
     menu.add(Menu.NONE, 1, 1, "Logout"); 
     return true; 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     switch (item.getItemId()) { 
      case 0: // Settings 
       // Do your funky stuff 
       break; 
      case 1: // Logout 
       break; 
     } 
     return false; 
    } 
} 

Теперь все ваши классы деятельности которые простираются от OptionsMenuActivity, будут иметь это меню.

+0

Это сработало. Спасибо – StarWars

+0

@StarWars, если он работает, вы должны принять ответ – andrei

0

Просто создайте новый класс полезности (MenuHelper.java), чтобы справиться с этим. В нем вы можете использовать метод, который создает ваше меню.

В этом классе есть только способ настройки вашего меню (setupMenu (контекст cxt, меню меню)), вам просто нужно передать соответствующие объекты методу, например контексту активности, а также в меню - (возможно, что-то вроде этого :. setupMenu (Context CXT, меню Menu))

+0

я использовал свой suggesstion, держали onCreateOptionsMenu как раньше, но уменьшенный onOptionItemSelected с помощью '@Override общественных логического onOptionsItemSelected (MenuItem элемента) { MenuHelper.setupMenu (MainActivity.this, пункт); return super.onOptionsItemSelected (item); } ' – StarWars

-1

Да, есть лучший способ. Создайте класс для шаблонов обработчиков событий. Возможно, вы можете это назвать EventTemplate. Там вы можете реализовать обработчики событий, которые вы хотите. Используйте соответствующую функцию шаблона обработчика событий для каждого события. Таким образом, вместо того, чтобы дублировать ваш код десять раз, вы можете реализовать его один раз и использовать его, когда вам это нужно.

+0

Down-voter, можете ли вы объяснить, почему, по вашему мнению, этот пост не поможет? –

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