gpt4 book ai didi

android - 通用目的 fragment Activity

转载 作者:行者123 更新时间:2023-11-29 01:17:55 24 4
gpt4 key购买 nike

我不想为每个任务创建新的 Activity,因为业务逻辑已经由自定义 Fragment 处理。有一个通用布局:

<FrameLayout .. >
<LinearLayout ..
android:id="@+id/fragment" />
</FrameLayout>

我想创建通用的 Activity 来使用它并由特定的 Fragment 初始化。

public class LeliFragmentActivity extends LeliBaseActivity {
public static final String KEY_FRAGMENT = BuildConfig.APPLICATION_ID + ".FRAGMENT";

protected void onCreate(Bundle state) {
super.onCreate(state);
setContentView(R.layout.activity_with_fragment);

Fragment fragment = (Fragment ) getIntent().getSerializableExtra(KEY_FRAGMENT);
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.fragment, calcFragment);
transaction.commit();
}

public static void start(Context c, LeliBaseFragment fragment) {
Intent intent = new Intent(c, LeliFragmentActivity.class);
intent.putExtra(KEY_FRAGMENT, fragment);
c.startActivity(intent);
}

但我觉得这不是一个好办法。在 Intent 中传递 Fragment 在我看来是矫枉过正。所有这些序列化都是昂贵的。我可以改为传递类名 .. 或者有更好的方法吗?或者我应该为每个(全屏) fragment 设置一个Activity吗?感谢提示。

最佳答案

首先

如果您方便并且项目不是太大,您可以对整个项目使用一个Activity。但是,如果项目很大并且包含很多 Fragment,则最好将它们划分为不同 Activity 的逻辑顺序。例如 LoginActivity 将代表所有带有许多 Fragment 的唱歌/注册流程。比 LeliFragmentActivity 包含所有需要的 Fragment

第二

您不必将您的 Fragment 传递给彼此。 Fragment之间进行通信最好最简单的使用方法intrefaces就像文档说的那样。

其他可能的通信方式是事件总线库,如 EventBusOtto .

关于android - 通用目的 fragment Activity ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38489742/

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