Fragment中使用findViewById

    技术2026-04-21  16

    如果你为Fragment在XML文件中创建了什么控件,但findViewById方法却只能被用在Activity类中,所以,有没有办法在Fragment中使用它呢

    使用getView()方法就OK了,因为这个方法最终会返回当前fragment的根视图。

    Button btn = (Button) getView().findViewById(R.id.btn);

    但是在此之前要使用onCreateView来创建视图。

    @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(R.layout.fragment, null); }

    而如果你用inflate方法自己实例化一个view,比如这样:

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

    那么就不是再继续使用getView()了,取而代之的是:

    Button btn = (Button) view.findViewById(R.id.btn);

    这里的view就是之前实例化的View对象了。

    Processed: 0.013, SQL: 9