如何在Fragment中使用findViewById
2个回答
展开全部
使用getView()方法就OK了,因为这个方法最终会返回当前fragment的根视图。
Button btn = (Button) getView().findViewById(R.id.btn);
但是你应该知道要在此之前使用onCreateView来创建视图吧。
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment, null);
}
而如果你用inflate方法自己实例化一个view,比如这样:
@Nullable
@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对象了。
Button btn = (Button) getView().findViewById(R.id.btn);
但是你应该知道要在此之前使用onCreateView来创建视图吧。
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment, null);
}
而如果你用inflate方法自己实例化一个view,比如这样:
@Nullable
@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对象了。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询