выбор пункта в диалоговом меню

1

В последнее время я сталкивался с некоторыми проблемами, и я думаю, что мне нужна ваша помощь:). В настоящее время я пытаюсь показать меню в верхней части диалогового окна, я знаю, что было бы намного легче запустить новую активность, но это заставит меня хранить/передавать большое количество данных. Мне удалось показать optionmenu, написав специальный диалог и переписав метод oncreateOptionMenu. Моя проблема в том, что я не могу прослушать эту кнопку, я попытался переписать onoptionitemselectedmethod, но ничего не происходит. Ps: мой диалог почти на весь экран, поэтому я не вижу диалогового окна активности (я не нашел способа ввода сверху)

Я был бы рад попробовать любое решение, которое вы могли бы предоставить.

Спасибо большое

public boolean onCreateOptionsMenu(Menu menu) {
    super.onCreateOptionsMenu(menu);
    menu.add(Menu.NONE,0,Menu.NONE,c.getString(R.string.home));
    menu.add(Menu.NONE,4,Menu.NONE,c.getString(R.string.report));
    return true;
}
public boolean onOptionsItemSelected(MenuItem item) {
    super.onOptionsItemSelected(item);
    if(item.getItemId()==0){
        getOwnerActivity().startActivity(new Intent(c,Home.class).setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));
    }
    else
        if(l>1)
            getOwnerActivity().startActivity(new Intent(c,report.class).setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));
        else
            dismiss();
    return true;
}
Теги:

1 ответ

1
Лучший ответ

Возможно, этот небольшой фрагмент из моего приложения поможет вам:

private static final int REFRESH_ID = Menu.FIRST + 1;

public boolean onCreateOptionsMenu(Menu menu) {
  boolean result = super.onCreateOptionsMenu(menu);
  menu.add(0, REFRESH_ID, 0, R.string.menu_refresh).setIcon(R.drawable.and_refresh);
  return result;
}

public boolean onMenuItemSelected(int featureId, MenuItem item) {
  switch (item.getItemId()) {
    case REFRESH_ID: {
      // Do whatever you want here!
      return true;  
    }
  }
  return super.onMenuItemSelected(featureId, item);
}

Как вы можете видеть, у меня есть константы для моих пунктов меню. Эти пункты получают Menu.First + n число как целое. Для каждого элемента я подсчитываю его. Легче, а затем меняйте его каждый раз;) И в onMenuItemSelected вы можете легко переключать эти константы. Надеюсь, что это поможет!

  • 0
    Здравствуйте, спасибо за ваш ответ, но не в этом моя проблема, я постараюсь прояснить ситуацию. У меня есть диалог, который примерно на весь экран. Я хочу меню сверху, когда пользователь нажимает кнопку меню. Когда мне удалось получить меню с методом onCreateOptionsMenu в пользовательском диалоге. Программа не проходит через onOptionsItemSelected при нажатии кнопки. Ваш код был бы совершенно полезным, если бы я не был в диалоге.
  • 0
    Сначала я не видел разницы между вашим кодом и моим. Дело в том, что я просто неправильно использовал функцию onOptionsItemSelected вместо onMenuItemSelected. Спасибо большое за вашу помощь!
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню