如何在Fragment
而不是AboutAndHelpActivity
本身中启动Activity
,或者如何将Fragment
放入startActivity()
?
//if it is the first start of the app, open HelpFragment once.
Boolean isFirstRun = getSharedPreferences("PREFERENCE", MODE_PRIVATE)
.getBoolean("isFirstRun", true);
if (isFirstRun) {
startActivity(new Intent(MainActivity.this, AboutAndHelpActivity.class));
Toast.makeText(MainActivity.this, "First Run", Toast.LENGTH_LONG)
.show();
}
getSharedPreferences("PREFERENCE", MODE_PRIVATE).edit()
.putBoolean("isFirstRun", false).commit();
答案 0 :(得分:0)
你完全误解了什么是活动和碎片。再次阅读它们。
tl; dr:活动 - 基本单位。片段 - 部分。片段只能在某些活动中托管,并且不能以其他方式显示。
这里是如何在活动中显示片段的:
getSupportFragmentManager().beginTransaction()
.replace(R.id.fragment_holder,new MyFragment())
.addToBackStack(MyFragment.class.getSimpleName())
.commit();
答案 1 :(得分:0)
在你想要考虑活动和片段之前 我建议你阅读一下 这样你就会明白 请查看链接以获取片段信息
https://developer.android.com/guide/components/fragments.html
您可以添加,删除或替换活动中的片段 您应该管理片段生命周期。 否则,您可能会遇到一些意外的UI或应用程序问题
答案 2 :(得分:0)
如果我理解正确,AboutAndHelpActivity
应该是在应用首次运行和的情况下启动片段。
如果是这样,启动活动部分已经在您的初始问题中解决了,那么剩下的就是显示片段。两个选项对我有意义:
如果AboutAndHelpActivity
的唯一工作是放置Fragment并且不会出于任何其他目的,可以将Fragment添加到其布局xml中。
否则,需要根据@Ekalips已经指出的Intent extra动态添加Fragment。