Ваш инфлятор не инициализирован.Замените ваш метод getView (..) на:
public View getView(int position, View view, ViewGroup parent) {
if(inflater==null)
inflater = LayoutInflater.from(this.c);
//it is also unnecessary to reinitialize the view everytime this callback is called. Take advantage of recycling feature of the list.
if(view ==null)
view = inflater.inflate(R.layout.grid_item2,null);
ImageView image_g=view.findViewById(R.id.image_grid2);
image_g.setImageResource(image_grid2[position]);
return view;
}
Также, пожалуйста, проверьте тип контекста, который вы передали конструктору, это должно быть действие с использованием адаптера или, если его фрагмент, передать фрагменты getActivity() переопределить.
Активность:
new Grid_dif(MyActivity.this, ..);
Фрагмент:
new Grid_dif(this.getActivity(), ..)