не работает диалог андроида из меню

1
   //called when hardware button "Menu" clicked
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();
        inflater.inflate(R.menu.menu, menu);
        return true;
    }

а затем этот

@Override
    public boolean onMenuItemSelected(int featureId, MenuItem item) {
        switch (item.getItemId()) {
        case R.id.menu_options:
                startActivity(new Intent(this, EditPreferences.class));   
                break;
        case R.id.menu_about:
             Dialog dialog = new Dialog(getApplicationContext());
                dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);//NO TITLE :)
                dialog.setContentView(R.layout.menu_about);
                dialog.setCancelable(true);
                dialog.show();
            break;

        default:
            break;
        }

//return true;
//return false;
        return super.onMenuItemSelected(featureId, item);
    }

используя debug, я вижу, что я вхожу в case switch R.id.menu_about, но dialog.show() ничего не делает

диалог просто не будет отображаться, я тоже попытался использовать стандартный AlertDialog, не повезло.

  • 0
    Вы получаете ошибку? Если это так, пожалуйста, напишите.
  • 0
    без ошибок, просто исчезает строка меню
Теги:
android-layout

1 ответ

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

Попробуйте изменить:

Dialog dialog = new Dialog(getApplicationContext());

к

Dialog dialog = new Dialog(this);
  • 1
    OMG, я только что видел это. Я не могу поверить, что я пропустил это. @ Макс, да диалог (вид в общем) НЕ МОЖЕТ быть создан с использованием контекста приложения.
  • 1
    Спасибо, я всегда думал, что getApplicationContext () и это одно и то же, какая разница между этими двумя? :)
Показать ещё 1 комментарий

Ещё вопросы

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