从Item(ActionBar)开始一个活动?

时间:2013-10-13 11:50:57

标签: java android android-actionbar-compat

我正在使用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"

再次感谢你。

1 个答案:

答案 0 :(得分:2)

使用操作栏在您的活动中使用public boolean onOptionsItemSelected(MenuItem item) { ... },并使用菜单布局中的ID创建一个匹配item.getItemId()的开关案例。之后,像在常规按钮上一样创建适当的意图。