是否有可能没有活动的片段?

问题描述 投票:4回答:3

这是不太可能的,但是它可能为我节省大量时间来重写相同的代码。我想使用警报类型的服务(例如Chathead)来实现UI,但我仍然想使用片段。可能吗?我知道我可以向窗口添加视图但可以添加片段吗?

android
3个回答
6
投票
From Android Developers

片段代表行为或用户界面中的

部分活动。您可以在一个活动中合并多个片段,以构建多窗格UI并在多个活动中重用片段。您可以将片段视为

活动的模块化部分,它具有自己的生命周期,接收自己的输入事件,您可以在活动运行时添加或删除(类似于“ sub活动”,您可以在其他活动中重复使用)。

希望对您有帮助。

2
投票
public class ActivityFragmentWrapper extends FragmentActivity { public static final String KEY_FRAGMENT_CLASS = "keyFragmentClass"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); if (getIntent().getExtras() != null) { String fragmentClass = (String) getIntent().getExtras().get(KEY_FRAGMENT_CLASS); try { Class<?> cls = Class.forName(fragmentClass); Constructor<?> constructor = cls.getConstructor(); Fragment fragment = (Fragment) constructor.newInstance(); // do some managing or add fragment to activity getFragmentManager().beginTransaction().add(fragment, "bla").commit(); } catch (Exception LetsHopeWeCanIgnoreThis) { } } } public static void startActivityWithFragment(Context context, String classPathName) { Intent intent = new Intent(context, ActivityFragmentWrapper.class); intent.putExtra(KEY_FRAGMENT_CLASS, classPathName); context.startActivity(intent); } }

您可以像这样开始:

    ActivityFragmentWrapper.startActivityWithFragment(context, SomeSpecificFragment.class.getCanonicalName().toString());

当然,如果您的片段具有另一个构造函数,则必须检索其他一,但是那部分变得容易。


0
投票
© www.soinside.com 2019 - 2024. All rights reserved.