2010-08-27 5 views
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); 
     } 
    } 

Я не знаю, как создать свой Intent правильно

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

The method getContext() is undefined for the type Main 
+0

Что происходит с кодом у вас есть? Обычно вы можете использовать «это» в качестве контекста для вашего itnent. –

+0

Метод getContext() не определен для типа Main –

+0

Вы не используете eclipse? Вы должны получить ошибку на этой строке в редакторе eclipse – Falmarri

ответ

4

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

Intent myIntent = new Intent(this, AddStocksActivity.class) 
+1

О, да, если вам нужно сделать это в анонимном внутреннем классе, вы можете следовать моему ответу. Или вы можете сделать «MyActivity.this» – Falmarri

+0

это хорошее место! – Jorgesys

0

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

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

0

В классе активности делают

Context mContext; 

В вашем OnCreate() сделать

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) 
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 вместо этого – achie

Смежные вопросы