gpt4 book ai didi

Android - 如何隐藏当前 fragment 的菜单选项

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:20:50 25 4
gpt4 key购买 nike

我有一个带有 FrameLayout 和菜单的 ActionBar Activity 。当用户单击菜单项时,我用相关的新 fragment 替换 fragment 。但是,我看不到删除所选 fragment 的菜单项的明显方法。

public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (savedInstanceState == null) {
StudyFragment startFragment = new StudyFragment();
startFragment.setArguments(getIntent().getExtras());
getSupportFragmentManager().beginTransaction().add
(R.id.container, startFragment).commit();
}
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();

switch (id) {
case R.id.action_study:
replaceFragment((Fragment)new StudyFragment());
break;
case R.id.action_list:
replaceFragment((Fragment)new ListFragment());
break;
// etc
}
return super.onOptionsItemSelected(item);
}

private void replaceFragment(Fragment f) {
FragmentTransaction transaction =
getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.container, f);
transaction.addToBackStack(null);

transaction.commit();
}

关于 changing menus 的 Google 文档说要禁用 onPrepareOptionsMenu 中的菜单 - 但我怎么知道选择了哪个项目?

--解决方案实现--

使用下面 Muhammed Refaat 的解决方案,我向类(class)添加了两个新成员:

private Menu activityMenu;
private MenuItem curMenuItem;

在 onCreateOptionsMenu 中设置它们

activityMenu = menu;
curMenuItem = activityMenu.findItem(R.id.action_study);
curMenuItem.setVisible(false);

并在 onOptionsItemSelected 上更改它们

curMenuItem.setVisible(true);
curMenuItem = activityMenu.findItem(id);
curMenuItem.setVisible(false);

最佳答案

首先获取要删除的项目:

MenuItem item = menu.findItem(R.id.your_action);

然后设置它的可见性 false :

item.setVisible(false);

如果问题出在获取菜单(因为它不在 fragment 中),您可以轻松地从包含菜单的 Activity 中获取 context 并通过它获取菜单。

关于Android - 如何隐藏当前 fragment 的菜单选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27126336/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com