I am getting Null Pointer exception in Android GridView

I am getting a null pointer exception in a fragment using Gridview

. My code

public class HomeFragment extends Fragment {
    GridView grid;
    String[] web = { "Bata", "Service", "puma", "Hush" };
    int[] imageId = { R.drawable.shoesmall, R.drawable.shoe1, R.drawable.shoe3,
            R.drawable.shoe4 };

    public HomeFragment(){}

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {

       View rootView = inflater.inflate(R.layout.fragment_home, container, false);
     //   ViewGroup root = (ViewGroup) inflater.inflate(R.layout.fragment_home, container);

        CustomGrid adapter = new CustomGrid(getActivity().getApplicationContext(), web, imageId);
        grid = (GridView) getView().findViewById(R.id.gridview);
        grid.setAdapter(adapter);
        grid.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view,
                    int position, long id) {
                Toast.makeText(getActivity().getApplicationContext(),
                        "You Clicked at " + web[+position], Toast.LENGTH_SHORT)
                        .show();
            }
        });

        return rootView;
    }
}

      

Can anyone explain why this is happening? I usually don't use fragments.

+3


source to share


1 answer


yours getView()

is null as the view hasn't been created yet, so change

 grid = (GridView) getView().findViewById(R.id.gridview);

      



to

 grid = (GridView) rootView.findViewById(R.id.gridview);

      

+4


source







All Articles