在片段OnCreate()方法中获取Textview的Id

时间:2015-08-24 12:09:32

标签: java android android-fragments android-activity

我想在片段的onCreate()方法中获取文本视图的ID。它每次都返回null

我想在片段中显示我的联系人。为此,在FetchContact()方法结束时,我将联系人列表分配给TextView

当我发现null我的应用程序提供TextView时,我的代码返回NullPointerException。 任何可以告诉我如何在Id方法中获取TextView Fragment的{​​{1}}的人。

我尝试创建一个activity类的对象来获取onCreate(),但代码仍返回TextView。没有运气。

null

4 个答案:

答案 0 :(得分:4)

  

找到TextView我的应用程序给出了NullPointerException。

因为在onCreate方法之前调用的Fragment生命周期onCreateView方法。

覆盖在onViewCreated方法之后调用的onCreateView,并使用onViewCreated方法的第一个参数来访问Fragment布局中的视图:

@Override
    public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
        TextView text =(TextView)view.findViewById(R.id.textContact);
         /// your code here....
}

答案 1 :(得分:2)

使用

你的oncreateView中的

rootView.findViewById(R.id....)你应该在那里做与UI相关的工作

答案 2 :(得分:0)

你应该在onActivityCreated方法

上使用这样的东西
@Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);

        TextView tv = (TextView) getActivity().findViewById(R.id.textView1);

        }
    }

或使用回调

答案 3 :(得分:0)

  

onCreateView方法调用之前,您无法使用 findViewById 初始化任何视图。

所以你必须等待callback运行。有两种方法可以实现它。它将在onActivityCreated上运行,因为它在onCreateView

之后调用
  1. ρяσѕρєяK所述,View param来自onViewCreated。
  2. 您可以在之后调用的任何回调(委托)中调用getView() onCreateView()
  3. TextView tv = (TextView) getView().findViewById(R.id.tv_id);