有一个片段,其中的方法onCreateVew
:
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_main, container, false);
recyclerView = (RecyclerView) view.findViewById(R.id.recycler_view);
layoutManager = new LinearLayoutManager(getContext());
recyclerView.setLayoutManager(layoutManager);
recyclerView.setHasFixedSize(true);
initializeData();
initializeAdapter();
return view;
}
我想将实现recyclerView
单独移动到一个附加方法并在中声明它onCreateView
:
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_main, container, false);
initViews();
initializeData();
initializeAdapter();
return view;
}
private initViews() {
recyclerView = (RecyclerView) view.findViewById(R.id.recycler_view);
layoutManager = new LinearLayoutManager(getContext());
recyclerView.setLayoutManager(layoutManager);
recyclerView.setHasFixedSize(true);
}
但发誓view.findViewById
。它需要被宣布。告诉我如何做得更好。
您正在访问未声明的变量。在方法中声明的变量在该方法之外是不可见的。2号出口
View view
在这种情况下是错误的——在类级别上取出一个变量。因此它将在该类的所有方法和内部类中可用。在这种情况下,这是没有必要的,而且会带来更多的问题。正确的方法是通过
View view
后者的参数从 onCreateView 方法传递到 initViews 方法,如下所示:像这样调用方法: