gpt4 book ai didi

java - 如何在 Fragments 中使用来自 Main Activity 的 API 实例?

转载 作者:行者123 更新时间:2023-12-05 05:39:56 25 4
gpt4 key购买 nike

如果我在 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 的实例?

最佳答案

片段可以访问其 Activity , 所以你可以在你的 Fragement 中做这样的事情:

CustomApi customApi = ((MainActivity) getActivity()).customApi;
customApi.method1(...);

这有点蛮力,但却是完成这项工作的一种简单易行的方法。这假设您的 Fragment仅由单个 Activity 使用.如果你的Fragment被多个 Activity 使用,你可以定义一个 Interface并让所有父 Activity 实现该接口(interface)并访问 customApi那样。

更简洁、更受 Android 认可、更专业的方法是使用 ViewModel . ViewModelActivity 共享及其所有 Fragment s,您可以在 ViewModel 中管理自定义 API 引用.有关如何使用 ViewModel 的一些示例Activity之间进行沟通和 Fragment ,你可以看这里:

https://developer.android.com/guide/fragments/communicate

关于java - 如何在 Fragments 中使用来自 Main Activity 的 API 实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72558070/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com