2016-03-20 3 views
0

Ну, я пытаюсь создать приложение, которое должно иметь какой-то ActionBar, который нужно только планировать и проектировать один раз, а затем обслуживать меня для всех моих действий APP. Я не уверен, как это работает, нужно небольшое руководство, пожалуйста.сомневается в панели действий, панели инструментов и т. Д.

Чтобы дать вам представление о том, что я хочу, я хотел бы что-то вроде этого:

example app

сверху, то есть общее в APP. А затем ниже, а также подменю с иконками, с различными вариантами.

Что именно должно было бы использовать его? Я возился с ActionBar, но это он для меня на вершине. Но другому, как и вы?

Оба хотят, чтобы они были статическими и всегда были в каждом действии моего APP, без необходимости копировать и вставлять код каждого una..Que. Я думаю, и это как-то вы готовы вставлять его в любом месте, программируя только один раз ,

ответ

1

Этот вопрос не имеет особого отношения к Android. Речь идет о том, как вы можете повторно использовать несколько кодов.

Вы можете использовать наследование для этой цели.

Скажите, что у вас есть 3 разных вида деятельности, но вы хотите, чтобы у них был набор общих черт - в вашем случае ActionBar.

В этом случае вы можете создать abstract class, который реализует ActionBar и сделает все ваши действия унаследованными от этого abstract class.

Иерархия может выглядеть следующим образом:

public abstract class BaseActivity extends AppCompatActivity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.oncreate(savedInstanceState); 

     // Setup your common ActionBar here. 
    } 
} 

Теперь для этого abstract class делать свою работу, вы должны сделать все ваши действия наследуют от этого, так как:

public class MyActivityA extends BaseActivity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.oncreate(savedInstanceState); // It's important to call through to super to have it setup the ActionBar for the current activity. 
     // Next call setContentView(R.layout.my_activity_layout); 
     // And what else you need to do. 
    } 

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

А на следующий Activity вы делаете то же самое:

public class MyActivityB extends BaseActivity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.oncreate(savedInstanceState); 
     // Next call setContentView(R.layout.my_activity_layout); 
     // And what else you need to do. 
    } 

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

onCreateOptionsMenu реализован во всех ваших действиях, чтобы создавать различные пункты меню, и то же самое должно быть для вашего onOptionsItemSelected.

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

Также имейте в виду, что это очень широкий вопрос, который вы задаете.

На самом деле я просто хотел поставить это в комментарии, но решил, что он станет слишком большим, чтобы вписаться в комментарии.

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