Я получил попытку вызвать виртуальный метод «void android.widget.ImageView.setImageResource (int)» для нулевой ссылки на объект

Я следил за учебником AbhiAndroid, я хочу, чтобы мой первый, MainActivity запускал новый, SecondActivity, и мое приложение в основном предназначено для отображения сетки различных логотипов Android и увеличения их до исходного размера при нажатии; Однако я получаю

FATAL EXCEPTION: main
Process: fuckoff.com.gridviewexample, PID: 3127
java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.ImageView.setImageResource(int)' on a null object reference at fuckoff.com.gridviewexample.CustomAdapter.getView(CustomAdapter.java:30)

И да, я прочитал весь существующий поток, начиная с этого android-w">java.lang.NullPointerException: попытка вызвать виртуальный метод "void android.widget.ImageView.setImageResource(int)" для нулевой ссылки на объект, это findViewByID возвращает null

и некоторые другие, так и не нашел, как это можно применить к моему случаю

класс, который является причиной проблемы:

package fuckoff.com.gridviewexample;

import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
public class CustomAdapter extends BaseAdapter{
          Context context;
          int logos[];
          LayoutInflater inflter;
          public CustomAdapter(Context applicationContext, int[] logos){
          this.context = applicationContext;
          this.logos = logos;
          inflter = (LayoutInflater.from(applicationContext));}

    @Override
    public int getCount(){return logos.length;}

    @Override
    public Object getItem(int i){return null;}

    @Override
    public long getItemId(int i){return 0;}

    @Override
    public View getView(int i,View view,ViewGroup viewGroup){
            view = inflter.inflate(R.layout.activity_gridview,null);
            ImageView icon = (ImageView)view.findViewById(R.id.icon);
            icon.setImageResource(logos[i]);
            return view;}
}

person ufulol    schedule 05.10.2017    source источник
comment
опубликуйте свой файл activity_gridview.xml   -  person Nabin Bhandari    schedule 05.10.2017


Ответы (1)


Вам нужно добавить параметр viewGroup вместо null в метод inflate. Замените это так в вашем методе getView.

    view = inflter.inflate(R.layout.activity_gridview, viewGroup);
person Aalap Patel    schedule 05.10.2017
comment
Теперь он показывает FATAL EXCEPTION: main Process: fuckoff.com.gridviewexample, PID: 2764 android.view.InflateException: Binary XML file line #98: addView(View, LayoutParams) is not supported in AdapterView Caused by: java.lang.UnsupportedOperationException: addView(View, LayoutParams) is not supported in AdapterView at android.widget.AdapterView.addView - person ufulol; 05.10.2017