如果不同的fragment有同名的id,基于activity找id很容易会出现意想不到的错误,因为本质我们是想寻找当前fragment上的控件id。
那咋办?
为养成好习惯,在创建fragment的时候,把当前fragment对象摘出来使用就好了,如下:
public class SelectFragment extends Fragment {
View currentFragment;
private TextView tv;
public SelectFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View currentFragment = inflater.inflate(R.layout.fragment_select, container, false);
return currentFragment;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
tv = (TextView)currentFragment. findViewById(R.id.tv);
}
}
或者直接使用getView()进行findviewbyId