У меня есть 10-15 операций в моем проекте. Я хочу иметь меню опций главным образом во всех Операциях. Затем их любой способ, которым мы можем сделать это в одном месте, и это появляется во всех операциях.
Кроме того, мне понравится скрывать меню опций в некоторых. Так, это возможный, или я должен написать код меню опций во всех операциях.
С уважением
Sunil
Создайте класс (скажем, BaseActivity ), который расширяет Activity, и переопределит onCreateOptionsMenu
и onOptionsItemSelected
функции.
public class BaseActivity extends Activity {
// Activity code here
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.options_menu, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.item:
// do what you want here
return true;
default:
return super.onOptionsItemSelected(item);
}
}
}
Теперь в остальных 15–16 действиях вместо расширения действия следует расширить BaseActivity .
public class FooActivity extends BaseActivity {
// Activity code here
}
Таким образом, все ваши действия выводятся из меню параметров. Для действий, для которых вы хотите отключить меню параметров, вы можете снова переопределить его в этом конкретном действии.
public class BarActivity extends BaseActivity {
// Activity code here
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Do Nothing
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Do Nothing
}
}
Надеюсь, это не вызовет проблем с файлом манифеста.