Этот вопрос не имеет особого отношения к 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, как приведенные выше код является общим Ява.
Также имейте в виду, что это очень широкий вопрос, который вы задаете.
На самом деле я просто хотел поставить это в комментарии, но решил, что он станет слишком большим, чтобы вписаться в комментарии.