Android 如何进入片段中的OnCreateView函数
我尝试调用活动中的片段。 但是片段中的OnCreateView函数不起作用,无法启动 以下是我的代码: 活动:Android 如何进入片段中的OnCreateView函数,android,android-fragments,Android,Android Fragments,我尝试调用活动中的片段。 但是片段中的OnCreateView函数不起作用,无法启动 以下是我的代码: 活动: private RadiusFragment rf; onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.pref_general); rf = new RadiusFragment(); } 片段:
private RadiusFragment rf;
onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.pref_general);
rf = new RadiusFragment();
}
片段:
public class RadiusFragment extends Fragment {
private LinearLayout rootLayout;
public RadiusFragment() {
}
public RadiusFragment newInstance() {
return new RadiusFragment();
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
System.err.println("asdfsdf"); //I never see this line
this.rootLayout = (LinearLayout) inflater.inflate(R.layout.pref_map_radius, container, false);
return rootLayout;
}
}
您只是实例化了片段的一个对象,您必须通过FragmentManager将片段添加到活动中以正确创建片段
FragmentManager fragmentManager;
fragmentManager = getSupportFragmentManager();
YourFragment frag = new YourFragment();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
fragmentTransaction.add(R.id.placeholder,frag, "frag");
fragmentTransaction.commit();
只使用这条线
rf = new RadiusFragment();
你不能叫你的碎片。您需要将其添加到FragmentManager。这里您只是实例化了片段的一个对象
FragmentManager FMmanager = getFragmentManager();
Fragment detail = new RadiusFragment();
FragmentTransaction ft = FMmanager.beginTransaction();
ft.add(R.id.myFragment, detail);
ft.commit()
您需要告诉框架这个片段属于这个活动,以及该片段所显示的内容(应该是活动容器的一部分)。因此,当您进行此事务时,我想您需要提交它作为确认 直接从Android开发者那里获取 更新 这只是一个片段的实例化,就像实例化任何其他对象一样。 i、 e onAttach、oncreate、onCreateView等。。是事件片段的一部分
要真正执行片段的这些生命周期方法,您需要通过FragmentTransaction将其附加到活动。@hassler23:您做了什么?这是应该的,可能还有其他问题。@hassler23:试着编辑答案,我忘记了初始化FragmentManager的一行!我没有我的片段的id,或者我就是找不到它。在xml文件中,只需添加一个id为MyFragments的FrameLayout。这些答案对您没有帮助吗?
getSupportFragmentManager().beginTransaction()
.add(R.id.fragment_container, firstFragment).commit()
getSupportFragmentManager().beginTransaction()
.add(R.id.fragment_container, rf).commit()
String a=new String();