0

Can anyone solve this error? I have tried to make a list view but this errors come out when I run the code.

Error message:

2020-02-06 13:40:23.483 16037-16037/com.example.submissionexpert1 E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.submissionexpert1, PID: 16037 java.lang.NullPointerException: Attempt to invoke virtual method 'void android.widget.TextView.setText(java.lang.CharSequence)' on a null object reference at com.example.submissionexpert1.FilmAdapter$ViewHolder.bind(FilmAdapter.java:68) at com.example.submissionexpert1.FilmAdapter.getView(FilmAdapter.java:52)

My Code:

    import android.content.Context;
    import android.view.LayoutInflater;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.BaseAdapter;
    import android.widget.ImageView;
    import android.widget.TextView;
    import java.util.ArrayList;

    class FilmAdapter extends BaseAdapter {


    private final Context context;
    private ArrayList<Film> films = new ArrayList<>();

    void setFilms(ArrayList<Film> films) {
        this.films = films;
    }

    FilmAdapter(Context context) {
        this.context = context;
    }

    @Override
    public int getCount() {
        return films.size();
    }

    @Override
    public Object getItem(int i) {
        return films.get(i);
    }

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

    }

    @Override
    public View getView(int i, View view, ViewGroup viewGroup) {
        View itemView = view;
        if (itemView == null) {
            itemView = LayoutInflater.from(context).inflate(R.layout.item_data, viewGroup, false);
        }

        ViewHolder viewHolder = new ViewHolder(itemView);
    enter code here
        Film film = (Film) getItem(i);
        viewHolder.bind(film);
        return itemView;
    }

    private class ViewHolder {
        private TextView txtName;
        private TextView txtDescription;
        private ImageView imgPhoto;

        ViewHolder(View view) {
            txtName = view.findViewById(R.id.txt_name);
            txtDescription = view.findViewById(R.id.txt_description);
            imgPhoto = view.findViewById(R.id.img_photo);
        }

        void bind(Film film) {
            txtName.setText(film.getNama());
            txtDescription.setText(film.getOverview());
            imgPhoto.setImageResource(film.getPhoto());
        }
    }
}
seenukarthi
  • 8,241
  • 10
  • 47
  • 68
Dzaky Fawwaz
  • 19
  • 1
  • 2
  • Go to this class FilmAdapter.java at this line number 68 in this function void TextView.setText(java.lang.CharSequence) Something here is null, my guess is that TextView is null – Danny Fried Feb 06 '20 at 07:11

1 Answers1

2

Please check both below field returning null or object and correct accordingly. May be you are accessing wrong textview id.

txtName = view.findViewById(R.id.txt_name); // may return null
txtDescription = view.findViewById(R.id.txt_description); // // may return null

hope this helps.

Dipankar Baghel
  • 1,932
  • 2
  • 12
  • 24