单击Android中的菜单时触发事件

时间:2013-12-12 19:21:46

标签: android android-menu

我有一个基本的项目和问题。我的启动代码是MainActivity.java,属于它的菜单是 res / menu / main.xml 。以下是它的内容:

<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
    android:id="@+id/menu_add"
    android:orderInCategory="100"
    android:showAsAction="never"
    android:title="@string/menu_add_planet"/>

<item
    android:id="@+id/menu_config"
    android:orderInCategory="105"
    android:showAsAction="never"
    android:title="@string/menu_config_planet"/>  

当用户点击(或点击)菜单上的添加星球选项时,我希望该类被激活。该类是 NewPlanet.java 这是它的内容:

import android.app.Activity;

导入android.os.Bundle;

公共类NewPlanet扩展了Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_add);

}

}

我预计 res / menu / main.xml 中的item元素和newPlanet之间必然存在绑定但是如何? 提前谢谢。

1 个答案:

答案 0 :(得分:1)

在您的活动中,用户将点击add planet选项,其中包含以下内容:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    Intent intent;
    switch(item.getItemId()) {

        case R.id.menu_add:
            intent = new Intent(this, NewPlanet.class);
            intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP);
            this.startActivity(intent);
            break;

    }
    return true;
}

确保您拥有Action bar。您可以getActionBar().show();中的onCreate()来展示它。还要确保您没有同时拥有标题栏和操作栏。