Я уже просматривал SO и нашел 4 похожих вопроса, но, похоже, эта проблема различна. Я также потратил около 7 часов, чтобы решить эту ошибку, и не нашел, где я ошибся.Listview показывает неправильное изображение в первой строке
ПРОБЛЕМА:
Каждая строка в ListView содержит два изображения. Когда я запускаю действие, один или оба изображения в первой строке отображают неправильное изображение, и это происходит только при иногда после запуска. Где, иногда, строка, отображающая правильные изображения после запуска.
Когда я прокручиваю вниз, скрывая первую строку, а затем снова прокручиваю изображение, изображения меняются на правильные изображения.
ПОПЫТАЛИСЬ РЕШЕНИЕ:
я нашел только одно решение, чтобы установить convertView = нуль в начале метода GetView. Да, это работает, изображение отображается правильно, но приводит к другим проблемам и ошибкам. Прокрутка становится негладкой, и иногда некоторые изображения становятся слишком маленькими от того, что должно быть.
Примечание:
Там нет никаких проблем с данными, данные правильно выборки для каждой строки, после того, как я запустить отладку.
МОЙ КОД метод
MatchAdapter.class GetView
public View getView(int position, View convertView, ViewGroup parent) {
Match entry = listMatch.get(position);
MatchAdapter.ViewHolder myViewHolder;
if(convertView == null) {
LayoutInflater inflater = (LayoutInflater) context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
convertView = inflater.inflate(R.layout.match_row, parent, false);
myViewHolder = new MatchAdapter.ViewHolder();
myViewHolder.home_team_name = (TextView) convertView.findViewById(R.id.home_team_name);
myViewHolder.away_team_name = (TextView) convertView.findViewById(R.id.away_team_name);
myViewHolder.home_logo_view = (ImageView) convertView.findViewById(R.id.home_team_logo);
myViewHolder.away_logo_view = (ImageView) convertView.findViewById(R.id.away_team_logo);
myViewHolder.venue = (TextView) convertView.findViewById(R.id.venue);
myViewHolder.time = (TextView) convertView.findViewById(R.id.time);
convertView.setTag(myViewHolder);
} else {
myViewHolder = (ViewHolder) convertView.getTag();
}
ImageLoader imageLoader = new ImageLoader(this.context, "com.myapps", R.drawable.team_logo);
imageLoader.DisplayImage("http://myapps.com/assets/images/logos/"+ entry.getHome_team_logo(),
myViewHolder.home_logo_view);
imageLoader.DisplayImage("http://myapps.com/assets/images/logos/" + entry.getAway_team_logo(),
myViewHolder.away_logo_view);
myViewHolder.home_team_name.setText(entry.getHome_team_name());
myViewHolder.away_team_name.setText(entry.getAway_team_name());
myViewHolder.venue.setText(entry.getVenue());
myViewHolder.time.setText(entry.getTime());
return convertView;
}
Другое родственное код:
ImageLoader.class (я не хочу этот вопрос стал слишком долго прокручивать)
Спасибо за помощь!
Это не работает. –
Когда вы нашли изображения неподходящие, верны ли тексты? – NyanLH
Да, текст отображается правильно. Вы можете загрузить мои приложения в игру Google для тестирования. https://play.google.com/store/apps/details?id=com.jadualbola.lite –