0
A
回答
1
我知道這是一個無法回答的問題,但試圖從你的片段控制你的活動是一種不好的做法。
如果您需要引用活動來獲取上下文或其他東西,那麼您只需在片段中使用getActivity()
。如果您通過B.getActivity()
引用該類,則它將爲空,因爲您沒有查看類的實例,而是查看類構造。由於在創建片段之前沒有附加Activity(即使這種情況發生在XML中),引用ClassName.getActivity()
不會給你任何東西。所以只需撥打getActivity()
就可以了。
處理碎片和活動之間通信的最佳方式是使用接口和回調來發送特定信息。你不應該從片段控制你的應用,活動應該這樣做。你只需要從Fragment發回一小段信息回你的父活動。
例子:在您的片段:
private OnFragmentInteractionListener mListener;
@Override
public void onAttach(Context context) {
super.onAttach(context);
if (context instanceof OnFragmentInteractionListener) {
mListener = (OnFragmentInteractionListener) context;
} else {
throw new RuntimeException(context.toString()
+ " must implement OnEDHGameStartListener");
}
}
//the way to pass information here. Can use return values if you'd like
//this is what the activity needs to implement
public interface OnFragmentInteractionListener {
void thingHappened(String theInformation);
}
//when that thing happens that you want to communicate you call back to the
//activity like so:
public void someAction() {
mListener.thingHappened("the information");
}
您的活動,您可以通過覆蓋方法實現MyFragmentClass.OnFragmentInteractionListener
然後你就可以處理好兩者之間傳遞的信息。
public class MyActivity extends AppCompatActivity implements MyFragment.OnFragmentInteractionListener{
// most of the code here...
//now implement the listener.
@override
public void thingHappened(String information){
//what you want the activity to do with the information
}
}
相關問題
- 1. 從片段訪問活動
- 2. 通過活動訪問片段方法
- 3. 如何從片段活動中的片段訪問ImageButton?
- 4. 訪問片段的觀點,從活動
- 5. 如何從另一個片段活動中的片段活動訪問按鈕
- 6. 片段中的訪問活動變量
- 7. 當從XML加載片段時動畫片段轉換
- 8. 片段內的訪問活動
- 9. 在父活動中訪問片段viewPager
- 10. 片段活動片段內
- 11. 片段,活動,片段活動
- 12. 從主動畫片段類訪問嵌套的動畫片段
- 13. RecyclerView通過活動得到的片段
- 14. 無法加載活動的片段
- 15. 活動的默認加載片段'Transition
- 16. 在片段中加載本地活動
- 17. 在活動中加載片段OnCreate
- 18. 在片段中加載活動代碼
- 19. 如何通過實例名稱訪問動畫片段內的動畫片段?
- 20. 從活動到片段的通信
- 21. Android - 通過活動訪問片段組件
- 22. 活動到片段1,片段1到片段2片段2到活動
- 23. Android:如何通過片段活動替換片段頁面
- 24. 如何從Android中的基本活動更新片段內的片段片段?
- 25. 片段newInstance方法,如果片段通過XML佈局添加
- 26. 從活動中訪問TextView中的片段
- 27. 從片段啓動活動
- 28. 多片段活動溝通
- 29. 通信片段/活動
- 30. 活動片段
你想要活動方法訪問嗎? –
請確保您在onAttach中或之後調用getActivity – Ramit