我不確定該標題是否具有很多意義,很難解釋我想要的內容,但我會放棄它。當未使用片段時,從MainActivity的ListFragment調用函數
我要碎片,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函數。感謝您的任何幫助,您可以提供。
我可能會將函數移動到新類,但該函數會修改用戶界面的控件。雖然我可以使用PasswordList passwordList = new PasswordList()來訪問控件;然後passwordList.performSearch(),但這會創建一個新的實例,因此該函數中的任何控件都不會修改實際顯示的UI控件 – Boardy
您是否在使用setRetainInstance()?我在另一個相關問題的答案中看到了這一點。 – Zerkz
我不是沒有,從來沒有聽說過 – Boardy