Как переключиться на новую активность из меню?

1

У меня есть меню и вы хотите открыть новое действие, когда пользователь нажимает на элемент меню:

@Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle item selection
        switch (item.getItemId()) {
        case R.id.add_symbol:
           System.out.println("ADD SYMBOL CLICKED!");
           Intent myIntent = new Intent(this.getContext(), AddStocksActivity.class);
           startActivityForResult(myIntent, 0);
            return true;
        default:
            return super.onOptionsItemSelected(item);
        }
    }

Я не уверен, как правильно создать свое намерение

Ошибка компилятора:

The method getContext() is undefined for the type Main
  • 0
    Что происходит с кодом у вас есть? Обычно вы можете использовать «this» в качестве контекста для вашего itnent.
  • 0
    Метод getContext () не определен для типа Main
Показать ещё 1 комментарий
Теги:
android-activity
menu
android-intent
contextmenu

5 ответов

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

Так как Main extends Activity (который продолжается Context), вы можете сделать:

Intent myIntent = new Intent(this, AddStocksActivity.class)
  • 2
    О, да, если вам нужно сделать это в анонимном внутреннем классе, вы можете последовать моему ответу. Или вы можете сделать MyActivity.this
  • 0
    это хорошее место!
2

вот что я делаю

public boolean onCreateOptionsMenu(Menu menu){
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.options_menu, menu);

    MenuItem item1 = menu.findItem(R.id.menu_item_a);
    Intent intent1 = new Intent(this, A.class);
    item1.setIntent(intent1);

    MenuItem item2 = menu.findItem(R.id.menu_item_b);
    Intent intent2 = new Intent(this, B.class);
    item2.setIntent(intent2);

}

надеюсь, что это поможет

  • 0
    Вы можете использовать YourClassName.this вместо этого
0

В вашем классе активности сделайте

Context mContext;

В вашем onCreate() do

mContext = this

то в вашей опции "Параметры" сделайте

Intent myIntent = new Intent(this.getContext(), AddStocksActivity.class);
0
 Intent myIntent = new Intent(getApplicationContext(), AddStocksActivity.class);

или

Intent myIntent = new Intent(this, AddStocksActivity.class)
0

Измените this.getContext() на this.getApplicationContext()

Вы пытаетесь вызвать метод, который не существует.

Ещё вопросы

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