如果我在 Main Activity 中創建 API 的實體,我可以在片段中使用它,這樣我就不需要再次創建該實體了嗎?例子:
public class MainActivity extends AppCombatActivity {
CustomApi customApi;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
customApi = new CustomApi(this, key);
}
}
如何在 MainActivity 創建的片段中訪問此 customApi 實體,而無需再次創建此 CustomApi 的實體?
uj5u.com熱心網友回復:
Fragment 可以訪問它Activity,所以你可以在你的Fragement:
CustomApi customApi = ((MainActivity) getActivity()).customApi;
customApi.method1(...);
這有點蠻力,但卻是一種簡單易行的作業方式。這假設您Fragment僅由單個Activity. 如果您Fragment被多個活動使用,您可以定義一個Interface并讓所有父活動實作該介面并以customApi該方式訪問。
更簡潔、更受 Android 認可、更專業的方法是使用ViewModel. 由及其所有ViewModel共享,您可以在. 有關如何使用 和 之間進行通信的一些示例,您可以查看此處:ActivityFragmentViewModelViewModelActivityFragment
https://developer.android.com/guide/fragments/communicate
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/490328.html
上一篇:應用程式的活動與片段
