2013-10-13 41 views
2

我使用ActionBarCompat为API 11下的设备制作了一个操作栏。 它工作的很好,很容易设置,但我被卡住了。从Item(ActionBar)开始一个活动?

我在操作栏上有一些项目,它看起来不错。 有些项目位于三个点(ifRoom)之后,有些项目始终可以看到。

当您点击这些项目中的某一个以使其开始一个新的活动时,我该怎么做? 我试着用switch/case和其他方法,但没有工作从一个活动发送到另一个通过项目。我知道如何从按钮,图像按钮发送到另一个活动,但不是从项目。

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

谢谢。

SOLUTION:

只是想谢谢你杰拉德。

我在strings.xml中创建了新的字符串。 在那之后,我没有改变标题在我main.xml中这样:

android:title="@string/add"

我没有硬编码该行像以前一样,因此它没有工作,我认为:

android:title="@+id/add"

再次感谢您。

+0

很高兴我能帮忙,祝你好运! – Gerard

回答

2

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

+0

嗨。 我试过了,在我的文章上编辑过,所以你可以看到。 – DMT82

+0

请添加操作栏布局,您的ID声明中可能有错误 – Gerard