您的位置:首页 > 移动开发 > Android开发

android使用include调用内部组件报空指针异常解决方案

2016-01-01 21:41 537 查看
使用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));
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: