Как переключиться на новую активность из меню? - PullRequest
3 голосов
/ 28 августа 2010

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

@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

Ответы [ 5 ]

6 голосов
/ 28 августа 2010

Поскольку Main расширяет Activity (что расширяет Context), вы можете сделать:

Intent myIntent = new Intent(this, AddStocksActivity.class)
2 голосов
/ 28 августа 2010

это то, что я делаю

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 голосов
/ 28 августа 2010
 Intent myIntent = new Intent(getApplicationContext(), AddStocksActivity.class);

или

Intent myIntent = new Intent(this, AddStocksActivity.class)
0 голосов
/ 28 августа 2010

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

Context mContext;

В вашем onCreate () выполните

mContext = this

затем в настройках опций выполните

Intent myIntent = new Intent(this.getContext(), AddStocksActivity.class);
0 голосов
/ 28 августа 2010

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

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

...