#android #nullpointerexception
#Android #исключение nullpointerexception
Вопрос:
У меня есть этот метод getView внутри моего ListViewAdapter:
public static class ViewHolder{
public TextView textTitle;
public ImageView image;
}
public View getView(int position, View convertView, ViewGroup parent)
{
Project pro = getItem(position);
View vi=convertView;
ViewHolder holder;
if(convertView==null){
vi = inflater.inflate(R.layout.listitems, null);
holder=new ViewHolder();
holder.textTitle=(TextView)vi.findViewById(R.id.txt_title);;
holder.image=(ImageView)vi.findViewById(R.id.image);
vi.setTag(holder);
}
else
holder=(ViewHolder)vi.getTag();
holder.textTitle.setText(pro.project_title);
holder.image.setTag(pro);
imageLoader.DisplayImage(pro.smallImageUrl, activity, holder.image);
return vi;
}
поскольку это для listview, в нем отображаются как изображения, так и текст.
С другой стороны, у меня есть activity, в котором я хочу применить imageLoader.DisplayImage
метод только для отображения изображений.
Основываясь на адаптере ListView, я создал это внутри activity:
imageLazy(image1, Main.this, prjcts.get(randomIndex1));
public void imageLazy(final ImageView image, Activity activity, Project pro)
{
imageLoaderx.DisplayImage(pro.smallImageUrl, activity, image);
}
Но затем мое приложение разбилось. Logcat сообщает об ошибке исключения Nullpointer и ошибке с моим методом imageLazy.
Кто-нибудь может помочь мне решить мою проблему? Чтобы мой метод мог отображать изображения без ошибок? Большое вам спасибо
Комментарии:
1. Внимательно посмотрите на трассировку стека исключений. В вашем коде должен быть номер строки, в которой произошло исключение. Отладьте эту часть кода и найдите значение null и подумайте, почему.
2. Я знаю, вот ошибка: imageLoaderx.DisplayImage (pro.smallImageUrl, activity, image), но я не могу ее решить
3. просто начните отладку, перейдите к строке и выясните, какая переменная в этой строке равна null или какой метод возвращает null, а затем выясните, почему. Это основы, которые следует выполнить при получении исключения с нулевым указателем
Ответ №1:
imageLoaderX не был инициализирован и имеет значение null. Вы можете исправить это, создав новый объект или получив ненулевую ссылку в другом месте.
Комментарии:
1. о, это я уже инициализировал как глобальную переменную: public ImageLoader imageLoaderx; это должно быть правильно, верно?
2. Однако вам действительно нужно его установить. Либо imageLoaderx = new ImageLoader(), либо imageLoaderx = someotherimageloderreference;
3. Я установил это следующим образом: ImageLoader imageLoaderx = новый ImageLoader (Main.this); все еще выдает мне ошибку: (
4. может быть, pro имеет значение null при передаче в этот метод?