Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何进入片段中的OnCreateView函数_Android_Android Fragments - Fatal编程技术网

Android 如何进入片段中的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(); } 片段:

我尝试调用活动中的片段。 但是片段中的OnCreateView函数不起作用,无法启动

以下是我的代码:

活动:

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();