使用一个main.xml进行不同的活动操作栏

时间:2015-02-14 08:58:45

标签: android android-activity android-actionbar

我正在开发一个应用程序,其中我在操作栏上显示按钮。我现在正在做的只是在菜单文件夹下的 main.xml 中添加项目。但是,如果在 main.xml 中添加3项,那该怎么办?如果膨胀任何活动的 main.xml ,它会向我显示3个项目,但我只想要一个项目,所以有什么方法我不需要创建不同的xml文件。

以下是代码:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // TODO Auto-generated method stub
    getMenuInflater().inflate(R.menu.main, menu);
    return super.onCreateOptionsMenu(menu);
}

/** define action for the action bar button*/
@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // TODO Auto-generated method stub

    switch (item.getItemId()) {
    case android.R.id.home:
        finish();
        overridePendingTransition(R.anim.slide_enter, R.anim.slide_exit);
        break;

    case R.id.action_create:

        fname=et_fname.getText().toString();
        lname=et_lname.getText().toString();
        email=et_email.getText().toString();
        password=et_password.getText().toString();
        IsValid();

        break;



    default:
        break;
    }
    return super.onOptionsItemSelected(item);
}

1 个答案:

答案 0 :(得分:2)

您可以通过在菜单文件中使用组来实现此目的

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <group
        android:id="@+id/main_menu_group">
         <item android:id="@+id/action_create"
              android:title="Create"
              android:icon="R.drawable.ic_action_create"
              android:showAsAction="ifRoom"/>
    </group>
</menu>

然后,

@Override
public boolean onCreateOptionsMenu(Menu menu){
         MenuInflater inflater = getMenuInflater();
         inflater.inflate(R.menu.custom_actionbar, menu);
         menu.setGroupVisible(R.id.main_menu_group,true);
     }
 }