Изображения исчезают при прокрутке спискаAndroid

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Изображения исчезают при прокрутке списка

Сообщение Anonymous »

В моем телефонном приложении я использую следующий план Фавориты, изображения исчезают после того, как они выйдут за пределы окна, и никогда не возвращаются, я много читал об этом сообщении об этой вещи, которая начинает выглядеть как ошибка для меня, но ничего не помогло,
Список журналов вызовов нагружает значки из ресурсов
Список фаворитов. Знаки со списком контактов.






< /code>
И это код, который я использую для загрузки фаворитов < /p>
ArrayList customListTxt = new ArrayList();
ArrayList customListImg = new ArrayList();

String[] projection = new String[]{ContactsContract.Contacts._ID,
ContactsContract.Contacts.DISPLAY_NAME,
ContactsContract.Contacts.HAS_PHONE_NUMBER};

Cursor cursor = getContentResolver().query(ContactsContract.Contacts.CONTENT_URI, projection, ContactsContract.Contacts.STARRED + "=1", null, null);
while (cursor.moveToNext()) {

// get the phone number
//String id = cursor.getString(cursor.getColumnIndex(ContactsContract.Contacts._ID));
String id = cursor.getString(cursor.getColumnIndexOrThrow(ContactsContract.Contacts._ID));
long ContactId = Long.parseLong(id);
ContentResolver cr = getContentResolver();
Cursor pCur = cr.query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null,
ContactsContract.CommonDataKinds.Phone.CONTACT_ID + " = ?",
new String[]{id}, null);

StringBuilder sb = new StringBuilder();
while (pCur.moveToNext()) {
//String phone = pCur.getString(pCur.getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER));
String phone = pCur.getString(pCur.getColumnIndexOrThrow(ContactsContract.CommonDataKinds.Phone.NUMBER));
sb.append("\n");
sb.append(phone);
}
String phones = sb.toString();
pCur.close();

String name = cursor.getString(1) + phones; //+cursor.getString(2) //cursor.getString(0)+" "+
InputStream thumbnailInputStream = openPhoto(ContactId);
customListImg.add(thumbnailInputStream);
//customListImg.add(R.drawable.phone_in_voice_mail);
customListTxt.add(name);
}
cursor.close();

//converting ArrayList to Array
final String[] arrTextRow = customListTxt.toArray(new String[0]);
final InputStream[] arrIconId = customListImg.toArray(new InputStream[0]);

//start the custom list and attach to the ListView
CustomList2 adapter = new CustomList2(MainActivity.this, arrTextRow, arrIconId);
lvFavourites.setAdapter(adapter);
< /code>
Любая справка очень ценится,
Спасибо < /p>
Это CustomList2 Code < /p>
public class CustomList2 extends ArrayAdapter{

private final Activity context;
private final String[] web;
private final InputStream[] imageId;
public CustomList2 (Activity context, String[] web, InputStream[] imageId) {
super(context, R.layout.callog_layout, web);
this.context = context;
this.web = web;
this.imageId = imageId;

}
@Override
public View getView(int position, View view, ViewGroup parent) {
LayoutInflater inflater = context.getLayoutInflater();
@SuppressLint({"ViewHolder", "InflateParams"}) View rowView= inflater.inflate(R.layout.callog_layout, null, true);

TextView txtTitle = rowView.findViewById(R.id.txt);
ImageView imageView = rowView.findViewById(R.id.img);

txtTitle.setText(web[position]);
imageView.setImageBitmap(BitmapFactory.decodeStream(imageId[position]));
//ImageView imageView =(ImageView) rowView.set
//imageView.setImageResource(R.drawable.phone_in);
return rowView;
}
}
< /code>
Я использую imageView.setImageBitmap (bitmapfactory.decodestream (imageId [position])); загружать значки для фаворитов и imageView.setImagerSource (r.drawable.phone_in);
Это реальная только разница между двумя списками < /p>

Подробнее здесь: https://stackoverflow.com/questions/796 ... e-listview
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»