有人可以帮助我处理此消息吗?我尝试创建列表视图,但是运行代码时会弹出此错误

时间:2020-02-06 06:53:38

标签: java android listview adapter

任何人都可以解决此错误吗?我试图建立一个列表视图,但是运行代码时会出现此错误。

错误消息:

2020-02-06 13:40:23.483 16037-16037 / com.example.submissionexpert1 E / AndroidRuntime:致命异常:主要过程: com.example.submissionexpert1,PID:16037 java.lang.NullPointerException:尝试调用虚拟方法'void android.widget.TextView.setText(java.lang.CharSequence)'上的null 对象参考 在com.example.submissionexpert1.FilmAdapter $ ViewHolder.bind(FilmAdapter.java:68) 在com.example.submissionexpert1.FilmAdapter.getView(FilmAdapter.java:52)

我的代码:

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

1 个答案:

答案 0 :(得分:2)

请同时检查下面的字段是否返回null或object,并进行相应的更正。可能是您访问了错误的textview ID。

n <= 32

希望这会有所帮助。