@Override
public View getView(int position, View convertView, ViewGroup parent)
{
ViewHolder holder;
if(convertView == null)
{
convertView = inflater.inflate(R.layout.photodata,null);
myHolder = new ViewHolder();
try
{
myHolder.imgPhoto = (ImageView) convertView.findViewById(R.id.imgPhoto);
}
catch (Exception e)
{
e.printStackTrace();
}
convertView.setTag(myHolder);
}
else
{
myHolder = (ViewHolder)convertView.getTag();
}
System.out.println("String image is" + getItem(position).photo);
myHolder.imgPhoto.setTag(getItem(position).photo);
System.out.println("String image is" + getItem(position).photo);
imageLoader.DisplayImage(getItem(position).photo,activity, myHolder.imgPhoto);
return convertView;
}
错误:
FATAL EXCEPTION: main
java.lang.NullPointerException
at.com.android.adapter.PhotoAdater.getView(PhotoAdater.java:59)
at.android.widget.AbsListView.obtainView(AbsListView.java:1315)
答案 0 :(得分:1)
您要声明的此代码,
ViewHolder holder;
但你使用的是不同的对象,
myHolder.imgPhoto= (ImageView) convertView.findViewById(R.id.imgPhoto);
改为,
holder.imgPhoto= (ImageView) convertView.findViewById(R.id.imgPhoto);
并且还改变了这样的Layoutinflater,
convertView = inflater.inflate(R.layout.photodata,null,false);
此代码减少了错误
答案 1 :(得分:0)
您在此处粘贴的代码似乎存在问题。看到我假设的代码
ViewHolder holder;
实际应该是
ViewHolder myHolder;
在这种情况下,您已在if条件中使用new
创建了实例,但在else
中,未完成。因此,myHolder
指向null
。认为这是NullPointerException
答案 2 :(得分:0)
我的猜测没有行号和/或知道你传递给这个方法的内容...如果你试图用position == null调用这个方法那么它会抛出一个NPE,因为你将null传递给一个原语。