0

可能重复:
片段android中的findViewById

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

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

我正在通过 ListFragment 扩展类,但是当我尝试与上面相同的代码时,我收到以下错误

findViewById(int) 方法未定义

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

4

2 回答 2

5

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

于 2012-09-07T20:03:19.647 回答
1

当你使用片段时,你应该重写 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;
    }
于 2012-09-07T20:02:32.023 回答