У меня есть меню и вы хотите открыть новое действие, когда пользователь нажимает на элемент меню:
@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
Так как Main
extends Activity
(который продолжается Context
), вы можете сделать:
Intent myIntent = new Intent(this, AddStocksActivity.class)
MyActivity.this
вот что я делаю
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);
}
надеюсь, что это поможет
В вашем классе активности сделайте
Context mContext;
В вашем onCreate() do
mContext = this
то в вашей опции "Параметры" сделайте
Intent myIntent = new Intent(this.getContext(), AddStocksActivity.class);
Intent myIntent = new Intent(getApplicationContext(), AddStocksActivity.class);
или
Intent myIntent = new Intent(this, AddStocksActivity.class)
Измените this.getContext()
на this.getApplicationContext()
Вы пытаетесь вызвать метод, который не существует.