如何在Fragment中使用findViewById呢

http://blog.csdn.net/NoMasp/article/details/49742475


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

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

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

但是你应该知道要在此之前使用onCreateView来创建视图吧。

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        return inflater.inflate(R.layout.fragment, null);
    }
  • 1
  • 2
  • 3
  • 4
  • 5

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

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment, container, false);
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

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

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

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


你可能感兴趣的:(如何在Fragment中使用findViewById呢)