В основном у меня есть база данных sqlite, которая позволяет мне вставлять изображения отелей с названиями. Раньше у меня была проблема, так как я получал повторяющиеся изображения, показанные в списке, но, слава богу, я это исправил. Теперь изображения отображаются в порядке. Однако при прокрутке вниз или вверх по списку приложение сбой.Listview падает при прокрутке вниз или вверх
Вот как я инициализирую пользовательский адаптер.
adapter = new HotelArrayAdapter(this, R.layout.single_row,
imageArry);
ListView dataList = (ListView) findViewById(R.id.list);
dataList.setAdapter(adapter);
И вот как я проектирую его, переопределяя метод getView().
public class HotelArrayAdapter extends ArrayAdapter<Hotels> {
Context context;
int layoutResourceId;
ArrayList<Hotels> data = new ArrayList<Hotels>();
public HotelArrayAdapter(Context context, int layoutResourceId,
ArrayList<Hotels> data) {
super(context, layoutResourceId, data);
// TODO Auto-generated constructor stub
this.layoutResourceId=layoutResourceId;
this.context = context;
this.data = data;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
// TODO Auto-generated method stub
View row = convertView;
ImageHolder holder = null;
if(row==null){
LayoutInflater inflater =(LayoutInflater)
((Activity)context).getSystemService(Context.LAYOUT_INFLATER_SERVICE);
row = inflater.inflate(layoutResourceId, parent,false);
holder = new ImageHolder();
holder.txtTitle = (TextView)row.findViewById(R.id.titleView);
holder.imgIcon=(ImageView)row.findViewById(R.id.iconView);
}
Hotels picture = data.get(position);
holder.txtTitle.setText(picture._name);
//convert byte to bitmap take from contact class
byte[] outImage=picture._image;
ByteArrayInputStream imageStream = new ByteArrayInputStream(outImage);
Bitmap theImage = BitmapFactory.decodeStream(imageStream);
holder.imgIcon.setImageBitmap(theImage);
return row;
}
static class ImageHolder
{
ImageView imgIcon;
TextView txtTitle;
}
}
и, наконец, выход LogCat является 12-12 19: 43: 20,665: Е/MessageQueue-JNI (1183): java.lang.NullPointerException
12-12 19:43:20.665: E/MessageQueue-JNI(1183): at
athens.tourist.guide.HotelArrayAdapter.getView(HotelArrayAdapter.java:44)
12-12 19:43:20.665: E/MessageQueue-JNI(1183): at
athens.tourist.guide.HotelArrayAdapter.getView(HotelArrayAdapter.java:44)
12-12 19:43:20.665: E/MessageQueue-JNI(1183): at
android.widget.AbsListView.obtainView(AbsListView.java:2143)
12-12 19:43:20.665: E/MessageQueue-JNI(1183): at
android.widget.ListView.makeAndAddView(ListView.java:1831)
12-12 19:43:20.665: E/MessageQueue-JNI(1183): at
android.widget.ListView.fillUp(ListView.java:708)
Что представляет собой линия 44 HotelArrayAdapter? – Mou
holder.txtTitle.setText (picture._name); вот этот. – Theo