2016-08-23 2 views
0

Я начинаю разрабатывать приложение для Android. В моем приложении у меня есть главное меню со многими опциями.Android-ассоциированный класс в верхнем меню

<?xml version="1.0" encoding="utf-8"?> 
<menu xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto"> 

    <item android:id="@+id/action_settings" 
     android:title="@string/action_settings" 
     app:showAsAction="never"/> 
    <item android:id="@+id/action_languages" 
     android:title="@string/action_laguages" 
     app:showAsAction="never"/> 
    <item android:id="@+id/action_notifications" 
     android:title="@string/action_notification" 
     app:showAsAction="never" 
     android:checkable="true" 
     android:checked="true"/> 

</menu> 

Я знаю, как создать верхнее меню и связать его с деятельностью.

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

Я знаю, как выполнять код посредством действия меню.

@Override 
    public boolean onOptionsItemSelected(MenuItem item){ 
     switch(item.getItemId()) { 
      case R.id.action_languages: 
       Intent languages = new Intent(this, TeamProject_Languages.class); 
       this.startActivity(languages); 
       return true; 
      case R.id.action_notifications: 
       if((item != null) && (item.isCheckable()) && (item.isChecked())){ 
        item.setChecked(false); 
       }else if((item != null) && (item.isCheckable()) && (!item.isChecked())){ 
        item.setChecked(true); 
       } 
       return true; 
      case R.id.action_settings: 
       Intent settings = new Intent(this, TeamProject_Settings.class); 
       this.startActivity(settings); 
       return true; 
      default: 
       return super.onOptionsItemSelected(item); 
     } 
    } 

Но я хочу знать, можно ли связать класс с этим меню. Это, чтобы написать код juste один раз, а не во всех действиях, когда мне нужно его использовать. Если возможно, кто-нибудь может сказать мне, как это сделать? В лучшем случае я просто хочу написать код, который позволяет связать меню с классом активности.

Заранее за вашу помощь.

ответ

0

Я нахожу решение. Для тех, кто хочет сделать то же самое, это мое решение. Я создаю класс java с расширениями «AppCompatActivity», и у меня была функция, которая позволяет создавать меню как в базовом действии. Затем активность, в которой я хочу, чтобы мое меню расширялось из моего собственного класса.

Надеюсь, это поможет вам, а также вы сможете понять мой вопрос и мое решение.

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