android - 根据 fragment 条件显示/隐藏菜单

标签 android menu android-actionbar

我有一个在适配器的帮助下显示列表的 fragment 。在列表中有一个链接单击,用户在其中调用另一个调用适配器以获取数据的 Activity 。获取数据后,我们可以添加 ata 并保存在该适配器中用户到 fragment 1 以保存数据。

.最初我不希望菜单保存在 fragment1 中。一旦用户在列表的 onclick 中添加数据,这将打开另一个列表以添加数据并返回到 fragment1 然后我需要显示菜单保存.....我试过了。

@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setHasOptionsMenu(true);
}


@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    inflater.inflate(R.menu.action_save, menu);
    shareItem = menu.findItem(R.id.action_save1);
    shareItem.setVisible(false);

}

稍后根据我正在做的条件:shareItem.setVisible(true);

最佳答案

当您开始另一个 Activity 以获得结果时,您可以使用 startActivityForResult()。获取数据后,您可以启用菜单。 在这里您可以获得更多信息How to manage startActivityForResult on Android?

举个例子,当你开始activity时设置结果代码为example 1。然后在获取到activity数据之后,这样完成第二个activity

Intent returnIntent = new Intent();
setResult(Activity.RESULT_OK,returnIntent);
finish();

在您的 onActivityResult 中,您可以检查结果是否正常,然后启用您的菜单。

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
     if (requestCode == 1) {
            if(resultCode == Activity.RESULT_OK){
               //data is updated. 
             myitem.setvisiblity(true)
            }        
        }
    }

关于android - 根据 fragment 条件显示/隐藏菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43488146/

相关文章:

android - 如何在 Android 中基于布局隐藏操作栏

java - 套接字异常 : sendto failed: EBADF (Bad file descriptor)

Android嵌套自定义ListView

java - CameraX 相机核心 :1. 0.0-beta01 在 Camera2Config.java defaultConfig() 处崩溃

html - 叠加背景颜色和图像

list 中的 Android ActionBar 颜色变化不正常

android - 如何使用拉边手势调整 View 大小?

objective-c - 如何启用 cocoa 应用程序中默认创建的各种菜单项?

html - 如何扩大特定顶级菜单项的子菜单项区域?

android - 如何在默认主题 Theme.Holo.Light 中更改 homeAsUpIndicator 的图像