Ответ 1
Первая опция
Вы должны переопределить метод onOptionsItemSelected
в своей деятельности, который вызывается, когда пользователь нажимает на элемент в меню "Параметры". В методе вы можете проверить, какой элемент был нажат.
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()) {
case R.id.menu_item1:
Intent intent = new Intent(this, ActivityForItemOne.class);
this.startActivity(intent);
break;
case R.id.menu_item2:
// another startActivity, this is for item with id "menu_item2"
break;
default:
return super.onOptionsItemSelected(item);
}
return true;
}
Существует также метод onContextItemSelected
, который работает аналогично, но для контекстного меню (я не уверен, какое меню вы имеете в виду).
Дополнительная информация на http://developer.android.com/guide/topics/ui/menus.html
EDIT:
Второй вариант
Я думаю, что первый вариант проще, но из вашего кода я вижу, что вы хотите запустить активность как действие (из-за параметра String
в конструкторе Intent
). Для этого вам нужно указать действие в вашем AndroidManifest.xml. Итак, если бы я начал работу ActivityForItemOne
(из предыдущего примера), элемент <application>
в AndroidManifest.xml выглядел бы так:
<application ...>
...
<activity android:label="Activity For First Item" android:name=".ActivityForItemOne">
<intent-filter>
<action android:name="my.app.ITEMONE" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
</application>
И Intent
будет:
Intent intent = new Intent("my.app.ITEMONE");
my.app.
- это пакет вашего приложения. Нет необходимости использовать ваш пакет приложений, но он рекомендуется для уникальности действий.
Дополнительная информация:
Намерение класса - константы действий и категорий
Надеюсь, что это решит вашу проблему.