Вызов onOptionsItemSelected явно

У меня есть пункт Сохранить меню. Это имеет onOptionsItemSelected(MenuItem item) функция. Это срабатывает, когда я нажимаю на меню Сохранить. Однако я хочу явно вызывать эту функцию, когда пользователь пытается перейти к другой операции без сохранения. Так в основном, как я могу назвать это onOptionsItemSelected(MenuItem item) из другой функции?

3 ответа

Решение

Сделайте одну вещь весь код, который вы написали в этом методе для сохранения, просто скопируйте и вставьте в созданный вами метод, например,

onOptionsItemSelected(MenuItem item){

    switch(item.getItemId()){
    case R.id.save:
       saveMe();
    break;
    }
}

private void saveMe(){
    // write your save code here
}

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

Иметь функцию с именем showSaveMenu() и внутри него покажите меню сохранения, если пользователь еще не сохранил. Вызовите эту функцию из каждой возможной точки выхода из действия, т.е. onBackPressed() или из любого места, где вы начинаете другую деятельность, а также из onOptionsItemselected()....

Просто вызовите invalidateOptionsMenu().

Другие вопросы по тегам