Android的 - 错误与适配器的ListView:显示java.lang.NullPointerException [英] Android - Error with ListView in adapter : java.lang.NullPointerException
本文介绍了Android的 - 错误与适配器的ListView:显示java.lang.NullPointerException的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我面对这个错误的显示列表视图。问题是,在适配器,但我无法找到解决方案。这在我的logcat:
I'm facing this error in displaying a List View. The problem is in the adapter but I couldn't find the solution. This in my logcat :
FATAL EXCEPTION: main
java.lang.NullPointerException
at com.client.alm.WorkItemAdapter.getView(WorkItemAdapter.java:68)
at android.widget.AbsListView.obtainView(AbsListView.java:2159)
at android.widget.ListView.measureHeightOfChildren(ListView.java:1246)
at android.widget.ListView.onMeasure(ListView.java:1158)
at android.view.View.measure(View.java:15513)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:4827)
这是我的适配器:
and this is my adapter :
import java.util.List;
import android.app.Activity;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import com.client.alm.model.WorkItem;
import com.client.alm.model.WorkItemContainer;
public class WorkItemAdapter extends ArrayAdapter<WorkItem> {
private WorkItemContainer container;
private Context context;
int layoutResourceId;
public WorkItemAdapter(Context context, int layoutResourceId,
WorkItemContainer container) {
super(context, layoutResourceId, container.getWorkitems());
this.layoutResourceId = layoutResourceId;
this.context = context;
this.container = container;
}
static class ViewHolder {
ImageView imageType;
TextView type;
TextView priority;
ImageView imagePriority;
TextView key;
ImageView imageStatus;
TextView status;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
ViewHolder holder = null;
if (row == null) {
LayoutInflater inflater = LayoutInflater.from(context);
row = inflater.inflate(layoutResourceId, parent, false);
holder = new ViewHolder();
holder.imageType = (ImageView) row
.findViewById(R.id.imageTypeWorkitem);
holder.type = (TextView) row.findViewById(R.id.typeWorkitem);
holder.imagePriority = (ImageView) row
.findViewById(R.id.imagePriority);
holder.key = (TextView) row.findViewById(R.id.key);
holder.imageStatus = (ImageView) row.findViewById(R.id.imageStatus);
holder.status = (TextView) row.findViewById(R.id.status);
row.setTag(holder);
} else {
holder = (ViewHolder) row.getTag();
}
WorkItem workitem = container.getWorkitems().get(position);
holder.type.setText(workitem.getType());
// holder.imageType.setImageResource(workitem.getIcon());
holder.priority.setText(workitem.getPriority());
holder.key.setText(workitem.getKey());
holder.status.setText(workitem.getStatus());
return row;
}
}
这我怎么调用适配器在我的活动:
and this how I call the adapter in my activity :
WorkItemContainer container = gson.fromJson(resultat,
WorkItemContainer.class);
/**
* Updating parsed JSON data into ListView
* */
WorkItemAdapter adaptateur = new WorkItemAdapter(
WorkItemActivity.this, R.layout.workitemitem, container);
ListView listViewWorkitem = (ListView) findViewById(R.id.list);
listViewWorkitem.setAdapter(adaptateur);
super.onPostExecute(resultat);
我将不胜AP preciate你的帮助。先谢谢了。
I would greatly appreciate your help. Thanks in advance.
推荐答案
这是因为当你吹你的看法:
That's because when you inflate your view:
if (row == null) {
LayoutInflater inflater = LayoutInflater.from(context);
row = inflater.inflate(layoutResourceId, parent, false);
holder = new ViewHolder();
holder.imageType = (ImageView) row
.findViewById(R.id.imageTypeWorkitem);
holder.type = (TextView) row.findViewById(R.id.typeWorkitem);
holder.imagePriority = (ImageView) row
.findViewById(R.id.imagePriority);
holder.key = (TextView) row.findViewById(R.id.key);
holder.imageStatus = (ImageView) row.findViewById(R.id.imageStatus);
holder.status = (TextView) row.findViewById(R.id.status);
row.setTag(holder);
你不初始化优先级字段。
you don't initialize the priority field.
这篇关于Android的 - 错误与适配器的ListView:显示java.lang.NullPointerException的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文