У меня есть ListView, который я заполняю именами и изображениями (если таковые существуют) для каждого контакта на моем телефоне. Это нормально работает, когда приложение изначально загружается, но как только я начну прокручивать ListView, изображения, которые изначально были исправлены, исчезли. Единственное, что я могу придумать, это то, что ресурсы используются, а затем уничтожаются, когда они прокручиваются с экрана, но мне не повезло узнать, как их сохранить.Android ListView Исчезающие изображения
Я просматриваю все мои контакты и сохраняю имя и используя ContactsContract.Contacts.openContactPhotoInputStream (context.getContentResolver(), photoUri); для получения InputStream изображения контакта. Затем в моем настраиваемом массиве ArrayAdapter я использую Drawable.createFromStream(), чтобы установить образ для ImageView моего элемента ListView.
Спасибо!
Edit: В соответствии с просьбой, вот мой метод GetView
public View getView(int position, View convertView, ViewGroup parent)
{
LinearLayout contact_view;
//Get the current alert object
ContactInfo contact = getItem(position);
//Inflate the view
if(convertView==null)
{
contact_view = new LinearLayout(getContext());
String inflater = Context.LAYOUT_INFLATER_SERVICE;
LayoutInflater vi;
vi = (LayoutInflater)getContext().getSystemService(inflater);
vi.inflate(resource, contact_view, true);
}
else
{
contact_view = (LinearLayout) convertView;
}
//Get the fields to populate from the listitem.xml file
TextView contact_name = (TextView)contact_view.findViewById(R.id.contact_name);
ImageView contact_image =(ImageView)contact_view.findViewById(R.id.contact_image);
//Assign the appropriate data from our alert object above
contact_name.setText(contact.get_name());
if(contact.get_contact_image() != null) {
contact_image.setImageDrawable(Drawable.createFromStream(contact.get_contact_image(), "src"));
} else {
contact_image.setImageResource(R.drawable.dummy_image);
}
return contact_view;
}
Не могли бы вы включить в свой пост код вашего адаптера getView()? –