2011-11-25 77 views
2

我是Java和Android开发的新手,我尝试使用事件处理程序进行菜单操作。我没有问题在xml中设置菜单,但现在我很困惑如何使用处理程序。Android菜单监听器

我使用

onOptionsItemSelected(MenuItem item) 

,我只知道如何创建新的活动,如:

startActivity(new Intent(this,About.class)) 

我见过很多教程,但他们都专注于按键,我试图和失败。 另外,我可以在不同的类中使用方法来更好地组织我的代码吗? 例如有method1.java,method2.java,method3.java,....并实例化这些类以调用方法。

如果有帮助,我想要做的是使用OpenGL,并允许用户能够旋转,翻译,调整大小等,这取决于所选的菜单选项。

编辑:我想为我的程序使用状态,并且只能使用为给定状态定义的处理程序。

回答

3

在菜单的XML文件,每个项目都有一个ID,例如...

<item 
    android:id="@+id/reset" 
    android:title="@string/gla_menu_title_reset" /> 

在你onOptionsItemSelected(MenuItem item)处理程序,你需要获得传入的物品的ID,然后对其进行处理。这样做的一个简单方法是使用一个开关/箱...

public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
     case R.id.reset: 
      // Do something 
      return true; 
     case R.id.something_else: 
      ... 
      return true; 
    } 
} 

而且,是的,你可以在Android中创建标准的Java类。

+0

是的,我做了这部分。令人困惑的部分是每种情况下会发生的事情。我试图实现的是每种情况都切换到不同的状态。每个状态都有自己的一套方法和事件处理程序。 – drum