我正在尝试在我的 Android 应用程序中构建一个简单的列表适配器。我让它正确显示项目列表,但奇怪的是,在列表显示后,我得到一个空指针并且应用程序崩溃。看到适配器相当简单,我不知道我在这里做错了什么。
在我的适配器下面。 Nullpointer 出现在 getView 方法中的 holder.points.setText("123");
public class QuestionAdapter extends BaseAdapter {
private List<Question> data = new ArrayList<Question>();
private Context context;
public QuestionAdapter(Context context) {
this.context = context;
}
@Override
public int getCount() {
return data.size();
}
private class ViewHolder {
TextView points;
TextView title;
}
public void setList(List<Question> questionList) {
this.data = questionList;
}
@Override
public View getView(int position, View convertView, ViewGroup viewGroup) {
Question question = getItem(position);
ViewHolder holder = new ViewHolder();
if (convertView == null) {
convertView = LayoutInflater.from(context).inflate(R.layout.list_item_question, null);
holder.points = (TextView) convertView.findViewById(R.id.text_question_points);
holder.title = (TextView) convertView.findViewById(R.id.text_question_title);
} else {
holder = (ViewHolder) convertView.getTag();
}
holder.points.setText("123");
holder.title.setText(question.title);
return convertView;
}
@Override
public long getItemId(int i) {
return 0;
}
@Override
public Question getItem(int i) {
return data.get(i);
}
}
最佳答案
您没有在任何地方执行convertView.setTag(holder)
。
当你这样做时的结果
holder = (ViewHolder) convertView.getTag();
holder
将为 null,它会给你一个 NullPointerException
关于java - Android ListAdapter 显示正确,但随后给出 NullPointer。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21477657/