Несколько действий, идентичных onCreateOptionsMenu, onOptionsItemSelected и onKeyDown.Можно ли как-то повторно использовать код? - PullRequest
7 голосов
/ 26 августа 2011

Несколько действий имеют идентичные onCreateOptionsMenu, onOptionsItemSelected и onKeyDown. Когда я внедряю изменение, я должен делать это в каждом действии (рабочее время * количество действий). Есть ли способ повторно использовать код (например, написать все три метода в одном месте и записать ссылку на него в каждом упражнении)?

Ответы [ 2 ]

12 голосов
/ 26 августа 2011

Конечно, просто создайте свой собственный класс Activity, от которого наследуются все ваши классы.

Немного похоже - создайте абстрактный базовый класс, который наследуется от Activity и реализует общее поведение:

public abstract class MyBaseActivity extends Activity {
    public Menu onCreateOptionsMenu(Menu menu) {
        /* do common menu stuff */
    }
}

Затем сделайте ваши индивидуальные действия наследующими от вашего базового класса:

public class MyActivity extends MyBaseActivity {
    // inherits behaviour from MyBaseActivity
    // so don't need to re-implement onCreateOptionsMenu
}
7 голосов
/ 26 августа 2011

Конечно, создайте базовое действие и напишите свой код там.

public class MenuActivity extends Activity {
     // Menu stuff goes here
}

Затем расширите свою отдельную деятельность от этого.

public class MyActivity1 extends MenuActivity { ... }
public class MyActivity2 extends MenuActivity { ... }
public class MyActivity3 extends MenuActivity { ... }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...