当我按下最后一个按钮时,我想从Activity
开始Fragment
,但我得到的是空白布局,而不是与{{1}相关联的布局}。
我从Activity
拨打Fragment
,如下所示:
MainActivity.class
在FragmentManager mFragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = mFragmentManager.beginTransaction();
fragmentTransaction.replace(R.id.mainContent,new FragmentMain()).commit();
课程中,我有一个FragmentMain
方法,如下所示:
onClick
但结果是空白布局,并且logcat上没有显示错误。我在网上搜索了类似的行为,我找到了一些无法解决问题的解决方案:
我的项目中没有任何方法@Override
public void onClick(View v) {
Intent intent = new Intent(getActivity(), FinalClass.class);
getActivity().startActivity(intent);
}
,所以这个解决方案对我不起作用。
addToBackStack()
是接受的答案。
他们用来从片段中启动活动的方式不会改变我使用的方式。
提供的任何解决方案都适用于我。
P.S:我在getActivity().startActivity(myIntent)
文件中声明了Activity
:
Manifest.xml
P.S.2:不要怀疑是否需要更多代码(我试图简化它以专注于问题)。
我可以做些什么来避免<activity
android:name=".FinalClass"
android:screenOrientation="portrait"
android:label="Final Class"
android:icon="@mipmap/ic_launcher"
android:theme="@style/AppTheme.NoActionBar" />
给我一个空白的布局而不是与Activity
相关联的布局?
提前致谢!
答案 0 :(得分:1)
在onCreate
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_final_class);
}
不要将onCreateView
用于活动
答案 1 :(得分:1)
您无法使用片段实例从Fragment启动活动。但您可以使用片段容器活动实例启动活动。 例如:假设活动A 具有 Fragment Abc ,因此您必须使用Activity A而不是Fragment abc的实例。
通过这样做,您之前的片段中会有无效,因为它位于您的Activity的顶部,而不是替换或添加现有的片段。如果您想在现有片段中进行一些更改,则必须覆盖 onActivityResult
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
}
:) GlbMP
答案 2 :(得分:0)
你可以使用onCreateView方法然后使用这个代码它也会有帮助......
<div id="container_video">
<video id="video1" width="450" height="340" preload="auto"></video>
<canvas id="overlay" width="450" height="340"></canvas>
<canvas id="webgl" width="450" height="340"></canvas>
</div>
答案 3 :(得分:0)
最后,我找到了解决方案。我使用了错误的onCreate方法。
之前,我有:
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
final View inflaterFinalClass = inflater.inflate(R.layout.activity_final_class, null);
return inflaterFinalClass;
但我应该使用:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_final_class);
}
因此,总而言之,我使用onCreate方法处理Fragment而不是onCreate方法用于Activity。