1

我不确定这个标题是否有意义,很难解释我想要什么,但我会试一试。

我必须分段,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 功能。感谢您的任何帮助,您可以提供。

4

1 回答 1

0

自从我做 Android 以来已经有一段时间了,但我相信由于片段实际上没有显示,在你的情况下,它现在不存在。我相信每次切换方向时,都会重新绘制视图等。

这个函数在另一个片段中,无论如何你可以将它提取到另一个类中吗?在我之前的一个 android 项目中,我使用了两个片段,但对于手机/小型设备,我只是将它转发到托管第二个片段的 FragmentActivity(我使用了兼容库)。在表格版本中,第二个片段被显示。

它不是超级优雅,而且有些陈旧,但我的项目是开源的,如果你想看看的话,请访问 www.github.com/zerkz。

于 2012-10-04T20:15:11.107 回答