针对不同活动的不同行动栏

时间:2013-11-10 11:52:59

标签: android android-actionbar

我正在尝试在操作栏中为不同的活动创建不同的项目集。作为一个页面上的示例,我想要一个搜索图标,但不是在其他页面上。我在menu.xml中添加项目,然后在特定活动中对整个页面进行充气,但我只想显示特定项目....如何做到这一点? 谢谢

2 个答案:

答案 0 :(得分:4)

您可以对MenuItem使用MenuItem.setVisible(boolean)功能。通过这些,您可以在活动中将您的特定项目视为可见/不可见。

在onCreateOptionsMenu()回调中,您将得到以下内容:

  @Override
  public boolean onCreateOptionsMenu(Menu menu) {
      ...
      // hide the menu item
      menu.findItem(R.id.yourItem).setVisible(false);
      ...
      return true;
  }

或者你可以使用seperat menu.xml来进行不同的活动。哪个更干净。因为您将摆脱代码部分来处理您不需要的项目。

答案 1 :(得分:1)

要在不同活动的顶部添加不同的操作栏或工具栏,您可以按如下方式添加它们sample_activity.xml

<android.support.v7.widget.Toolbar android:id="@+id/toolbar"
    android:layout_width="match_parent" android:layout_height="?attr/actionBarSize"
    android:background="?attr/colorPrimary" app:popupTheme="@style/AppTheme.PopupOverlay" />

并在您的java文件中跟随代码,例如扩展AppCompatActivity。 sample_activity.class

public class sample_activityextends AppCompatActivity {
    Toolbar toolbar = null;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.sample_activity);
        toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        // Get a support ActionBar corresponding to this toolbar
        android.support.v7.app.ActionBar ab = getSupportActionBar();

        // Enable the Up button
        ab.setDisplayHomeAsUpEnabled(true);
 }
}

正如我们在上面的活动中编写的代码

//获取与此工具栏对应的支持ActionBar         android.support.v7.app.ActionBar ab = getSupportActionBar();

    // Enable the Up button
    ab.setDisplayHomeAsUpEnabled(true);

这将在您的活动中添加回或顶部按钮,但为此您还需要在AndroidManifest.xml中进行以下更改

<activity android:name=".sample_activity"
    android:parentActivityName=".MainActivity">
    <meta-data  android:name="android.support.PARENT_ACTIVITY"
        android:value=".MainActivity"></meta-data>

</activity>
<activity android:name=".MainActivity"></activity>