Я пытаюсь изменить ImageView
в определенной строке в ListView
, которая была сделана с помощью специального адаптера.
Всякий раз, когда я изменяю одну строку, другие строки также затрагиваются.Буду признателен за вашу помощь.Спасибо.Вот мой код в классе MainActivity
adapter= new CustomAdapter(dataModels,getApplicationContext());
listView.setAdapter(adapter);
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Toast.makeText(MainActivity.this, position+" ",
Toast.LENGTH_LONG).show();
DataModel dataModel= dataModels.get(position);
Snackbar.make(view, dataModel.getName()+"\n"+dataModel.getType(), Snackbar.LENGTH_LONG)
.setAction(" ", null).show();
ImageView imgv = (ImageView)view.findViewById(R.id.item_info);
imgv.setImageResource(R.drawable.fav);
adapter.notifyDataSetChanged();
i= Integer.parseInt(dataModel.getVersion_number());
rotate();
StartNewSong();
}
});
Вот код в настраиваемом адаптере
public View getView(int position, View convertView, ViewGroup parent) {
// Get the data item for this position
DataModel dataModel = getItem(position);
// Check if an existing view is being reused, otherwise inflate the view
final View result;
if (convertView == null) {
viewHolder = new ViewHolder();
LayoutInflater inflater = LayoutInflater.from(getContext());
convertView = inflater.inflate(R.layout.row_item, parent, false);
viewHolder.txtName = (TextView) convertView.findViewById(R.id.name);
viewHolder.txtType = (TextView) convertView.findViewById(R.id.type);
viewHolder.info = (ImageView) convertView.findViewById(R.id.item_info);
result=convertView;
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
result=convertView;
}
Animation animation = AnimationUtils.loadAnimation(mContext, (position > lastPosition) ? R.anim.up_from_bottom : R.anim.down_from_top);
result.startAnimation(animation);
lastPosition = position;
viewHolder.txtName.setText(dataModel.getName());
viewHolder.txtType.setText(dataModel.getType());
check = dataModel.getImageApp();
if (check == "false") {
} else if (check !="false") {
Picasso.get()
.load(check)
.placeholder(R.mipmap.ic_launcher)
.error(R.mipmap.ic_launcher)
.into(viewHolder.info);
}
viewHolder.info.setOnClickListener(this);
viewHolder.info.setTag(position);
// Return the completed view to render on screen
return convertView;
}
Вот проблема, которая отображается как проблема GIF , как GIF
Мой класс DataModel
открытый класс DataModel {
String name;
String type;
String id;
String imageApp;
String url;
public DataModel(String name, String type, String id, String imageApp, String url) {
this.name=name;
this.type=type;
this.id=id;
this.imageApp=imageApp;
this.url=url;
}
public String getName() {
return name;
}
public String getType() {
return type;
}
public String getVersion_number() {
return id;
}
public String getImageApp() {
return imageApp;
}
public String getUrl() {
return url;
}
}