我不确定这个标题是否有多大意义,有点难以解释我想要什么,但我会试一试。
我必须片段化,ListFragment和MyFragment。如果设备是纵向的,即两个片段不能一起放在屏幕上,则仅显示LisFragment。我有一个名为MyActivity的活动,它承载片段并显示相关设备方向的相关片段。
然后,用户可以使用startActivityForResult按下按钮执行搜索,然后调用MyActivity中的函数来实际执行所需的操作。
如果手机处于横向状态,即两个片段都可见,则会成功从PasswordList片段中调用该功能。但是,如果手机处于纵向状态,则ListFragment为空,因此不会调用该功能。下面是我遇到问题的代码
public void performSearch(ArrayList<Spanned> passwords) {
PasswordList passwordList = (PasswordList)getFragmentManager().findFragmentById(R.id.passwordListFragment);
passwordList.performingSearch = true;
passwordList.performSearch(passwords);
}
PasswordList是我上面谈到的ListFragment,当手机处于横向时,passwordList工作,我可以执行performSearch功能。如果手机是纵向的,即使正在显示ListFragment,它也会返回Null,因此无法执行performSearch。
如何以任何一种方式执行performSearch功能。感谢您的任何帮助,您可以提供。
答案 0 :(得分:0)
自从我使用Android以来已经有一段时间了,但我相信由于片段实际上并未显示,因此在这种情况下,它不存在。我相信每次切换方向时,都会重新绘制视图等。
这个函数在另一个片段中,无论如何你可以将它提取到另一个类中吗?在我之前的一个android项目中,我使用了两个片段,但是对于手机/小型设备,我只是将它转发到FragmentActivity(我使用了compat库),它托管了第二个片段。在表格版本中,第二个片段显示了。
它不是超级优雅,有点旧,但我的项目是开源的,如果你想看一下,请访问www.github.com/zerkz。