使用fragment布局时,在onCreateView方法下初始化include的xml中的控件会报空指针,但是获取include的id是OK的
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
list_personal_info = (LinearLayout) getActivity().findViewById(R.id.list_personal_info);
list_travels_collection = (LinearLayout) getActivity().findViewById(R.id.list_travels_collection);
list_position = (LinearLayout) getActivity().findViewById(R.id.list_position);
list_settings = (LinearLayout) getActivity().findViewById(R.id.list_settings);
//include下的控件,在这里初始化会报空指针
list_personal_info.findViewById(R.id.left_pic).setBackground(getResources().getDrawable(R.drawable.personal_info));
return inflater.inflate(R.layout.fragment_user, container, false);
}
将include的控件初始化放在onActivityCreated中,就不会报空指针了
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
list_personal_info = (LinearLayout) getActivity().findViewById(R.id.list_personal_info);
list_travels_collection = (LinearLayout) getActivity().findViewById(R.id.list_travels_collection);
list_position = (LinearLayout) getActivity().findViewById(R.id.list_position);
list_settings = (LinearLayout) getActivity().findViewById(R.id.list_settings);
list_personal_info.findViewById(R.id.left_pic).setBackground(getResources().getDrawable(R.drawable.personal_info));
}