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());
}
}
}