3

我有一个带有 id 控件(TextView)的片段,R.id.currentCycleIndicator并希望从片段中以编程方式设置其值。

两个都

  • getActivity().findViewById(R.id.currentCycleIndicator)
  • getView().findViewById(R.id.currentCycleIndicator)

返回空值。

如何在片段代码中获取对该 TextView 的引用?

4

3 回答 3

11

尝试在 Fragment 的 onCreateView() 回调函数中获取其值,如下所示:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {       

    View view = inflater.inflate(R.layout.fragment_layout, container, false);

    TextView textView = (TextView) view.findViewById(R.id.currentCycleIndicator);

    return view;
}
于 2013-08-13T05:13:42.477 回答
1

您可以通过覆盖 onViewCreated 函数来做到这一点,如下所示:

private TextView tv;

@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);
    tv = (TextView) view.findViewById(R.id.currentCycleIndicator);
}
于 2013-08-13T05:15:14.487 回答
1

在内部膨胀您的视图onCreateView并从那里引用您的 TextView 。

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

            TextView text= (TextView) view.findViewById(R.id.currentCycleIndicator);
            return view;
}
于 2013-08-13T05:18:51.157 回答