What is the difference between getView() and getActivity()?

前端 未结 2 1826
我在风中等你
我在风中等你 2021-01-18 12:12

What is the difference between getView() and getActivity()?

I have used both methods but don\'t understand the basic difference even method

2条回答
  •  北海茫月
    2021-01-18 12:23

    From android docs:

    getActivity() returns the Activity this fragment is currently associated with, and getView() returns the root view for the fragment's layout (the one returned by onCreateView(LayoutInflater, ViewGroup, Bundle)), if provided.

    So, in your case, by the following line of code:

    getView().findViewById(R.id.load_item_list);
    

    you are searching for the view in your fragment, but using the following line of code:

    getActivity().findViewById(R.id.load_item_list);
    

    you are searching for the view in your activity hosting your fragment.

    About your question of which one to use, it depends. If you are trying to inflate fragment, you need to inflate your xml in onCreateView, and using that inflated view you search for your views like this:

    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.your_layout, container, false);
        ListView lv = (ListView)v.findViewById(R.id.view_id);
    }
    

提交回复
热议问题