我正在使用ActionBarCompat为API 11下的设备制作操作栏。 它工作得很好,很容易设置,但我卡住了。
我在Actionbar上有一些项目,看起来很棒。 有些项目位于三个点(ifRoom)后面,有些项目总是可以看到。
当您点击其中一个项目以启动新活动时,我该怎么做? 我尝试使用switch / case和其他方法,但没有通过Items从一个Activity发送到另一个Activity。我知道如何从按钮,图像按钮发送到另一个活动,但不是从项目。
我的main.xml看起来像这样:
<item
android:id="@+id/add"
android:title="Lägg till"
android:icon="@drawable/new"
android:orderInCategory="1"
budsnabben:showAsAction="always"/>
MainActivity中的代码如下所示:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch(item.getItemId()) {
case R.id.:
Intent intent = new Intent(this, MapActivity.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;
}
}
问题在于案例R.id ....在Id之后,我没有得到我的班级地图或主要,它不在那里。
谢谢。
SOLUTION:
只想感谢Gerard。
我在strings.xml中创建了新的字符串。 之后,我确实将main.xml中的标题更改为:
android:title="@string/add"
我像以前一样对该行进行了硬编码,因此我认为它不起作用:
android:title="@+id/add"
再次感谢你。
答案 0 :(得分:2)
使用操作栏在您的活动中使用public boolean onOptionsItemSelected(MenuItem item) { ... }
,并使用菜单布局中的ID创建一个匹配item.getItemId()
的开关案例。之后,像在常规按钮上一样创建适当的意图。