我有一个在适配器的帮助下显示列表的 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/