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