2017-08-10 57 views
0

在我的片段中,我有一個「解除」按鈕,該按鈕的行爲應取決於哪個Activity稱爲其父活動(如TutorialActivity)。獲取調用片段的父活動的活動

在TutorialActivity中,我已經確定哪個Activity調用它。如何將數據傳遞給片段?

我的片段駐留在PagerAdapter,我不希望需要通過這個信息作爲「的newInstance()」參數每一次,因爲它似乎矯枉過正,考慮到這個參數是相同的對於我的FragmentStatePagerAdapter中的每個片段。

+1

「我不想每次都需要將此信息作爲'newInstance()'參數傳遞,因爲它似乎是一種矯枉過正」 - 這聽起來像是一個很好的解決方案。另一種選擇可能涉及使用'BroadcastReceiver'和'LocalBroadcastManager',但這聽起來更像是矯枉過正。 – PPartisan

+0

使用單身或靜態對象我不真的支持靜態,但仍然可以做,因爲它有很多使用 – g7pro

回答

0

您可以通過公開此變量來訪問教程活動中的變量。假設變量名稱是父項。你可以通過使用TutorailActivity的實例來訪問它(假設fragment中使用的Activity的實例是mTutorialActivity),那麼它應該像mTutorialActivity.parent。 但是您需要傳遞TutorialActivity的實例,因爲它可能用於其他目的,例如從strings.xml和其他目的獲取字符串。所以,傳遞Activity實例而不是變量會是有益的。

0

我最終做了什麼:我在TutorialActivity本身實現了「不同的行爲」,將解除按鈕從片段中移出。然後在它裏面有一個簡單的onClickListener和一個switch語句。