在ListFragment中无法识别findViewById

时间:2012-09-07 20:00:26

标签: android android-fragments android-listfragment

  

可能重复:
  findViewById in fragment android

我目前正在研究android项目并试图让片段正常工作。片段部分正在工作,但我正在尝试控制UI组件,在标准活动上我可以使用类似

的东西
TextView txtMyTextBox = (TextView)findViewById(R.id.my_text_box)

我正在通过ListFragment扩展该类,但是为什么我尝试使用与上面相同的代码时出现以下错误

  

方法findViewById(int)未定义

为什么这不起作用。感谢您的任何帮助,您可以提供。

2 个答案:

答案 0 :(得分:5)

这个方法没有在Fragment类中定义,我假设你正在调用它。您必须在片段显示的视图上使用它。这与您在onCreateView()中返回的视图相同,您可以通过getView()检索该视图。因此,TextView txtMyTextBox = (TextView)getView().findViewById(R.id.my_text_box)应该有用。

答案 1 :(得分:0)

使用片段时,应覆盖onCreateView方法。

这是一个例子:

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
    {
        View v = inflater.inflate(R.layout.YOUR_FRAGMENT_LAYOUT, null);

        TextView txtMyTextBox = (TextView)v.findViewById(R.id.my_text_box)

        return v;
    }