2

我正在使用 ActionBarCompat 为 API 11 下的设备制作操作栏。它运行良好且易于设置,但我被卡住了。

我在操作栏上有一些项目,看起来很棒。有些项目位于三个点 (ifRoom) 的后面,有些项目您总是可以看到。

当您单击其中一项以启动新活动时,我该怎么做?我尝试使用 switch/case 和其他方法,但无法通过 Items 从一个 Activity 发送到另一个 Activity。我知道如何从按钮、imagebutton 发送到另一个 Activity,但不知道如何从 Items 发送。

我的 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 之后,我没有得到我的班级地图或主地图,它不存在。

谢谢你。

解决方案:

只是想感谢杰拉德。

我在 strings.xml 中创建了新的字符串。之后,我确实将 main.xml 中的标题更改为:

android:title="@string/add"

我像以前一样对该行进行了硬编码,因此我认为它不起作用:

android:title="@+id/add"

再次感谢您。

4

1 回答 1

2

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

于 2013-10-13T11:54:56.147 回答