Android(Fragment) - 是否建议在 onActivityCreated 方法中初始化 View 对象?

标签 android android-fragments fragment-oncreateview

View fragment 的变量可以通过这种方式在onCreateView方法中初始化。这里的TextView在 fragment 中。

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragmant_two,container,false);
    if(savedInstanceState == null)
    {

    }
    else
    {
        String data = savedInstanceState.getString("data");
        TextView myText = (TextView)view.findViewById(R.id.text_view);
        myText.setText(data);
    }


    return view;


}

但是我发现在onActivityCreated内部有一个view是这样初始化的。

textView = (TextView) getActivity().findViewById(R.id.text_view);

有什么理由让我选择 onActivityCreated 而不是 onCreateView 吗?

最佳答案

textView = (TextView) getActivity().findViewById(R.id.text_view);

这将尝试从您的 Activity 布局中找到 ID 为 R.id.text_view 的 View ,而不是您的 fragment 。如果具有该 ID 的 View 存在于您的 fragment 本身中,那么您应该在 fragment 中使用 onCreateView 方法。

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View view = inflater.inflate(R.layout.fragmant_two,container,false);
    TextView textView = (TextView) view.findViewById(R.id.text_view);
    // bind your data here.
    return view;
}

关于Android(Fragment) - 是否建议在 onActivityCreated 方法中初始化 View 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42574344/

相关文章:

java - 如何在listView的每一行中一一显示上传进度条?

java - 更新安卓速率栏

android - 您将如何在 Android 中创建弹出 View ,例如 Facebook 评论?

android - 将广告集成到 Fragment 中

android - Viewpager 初始 fragment 中的操作项未显示

android - 我在应用程序中添加了一个微调器,但由于适配器代码, Activity 没有启动

java - 这个简单的RelativeLayout Android 程序有什么问题?

java - 带有 ViewPagers oncreateView 的 Android fragment 在错误的 fragment 中调用

Android - 新 BottomNavigationBar 中的 PageView - 防止重新加载 fragment