Я создал определенный view элемент, код ниже:
public class PersonViewHolder extends RecyclerView.ViewHolder {
ImageView personPhoto;
ImageButton personLike;
PersonViewHolder(View itemView) {
super(itemView);
personPhoto = (ImageView)itemView.findViewById(R.id.person_photo);
personLike = (ImageButton)itemView.findViewById(R.id.btn_like);
}
}
В методе onBindViewHolder идет установка значений в элемент personViewHolder.personPhoto:
@Override
public void onBindViewHolder(PersonViewHolder personViewHolder, int i) { Glide.with(personViewHolder.personAge.getContext()).load(dogs.get(i).photoId).into(personViewHolder.personPhoto);}
Далее в AsyncTask выполняется нужная мне задача и в методе onPostExecute я хочу произвести установку изображения в элемент personViewHolder.personLike:
public final class like_set extends AsyncTask<Integer , Void, String> {
@Override
protected String doInBackground(Integer ... arg) {
String res = "1";
return res;
}
@Override
protected void onPostExecute(String result) {
super.onPostExecute(result);
if ( result.equals("1"))
{Glide.with(personViewHolder.personLike.getContext()).load(R.drawable.like_red).into(personViewHolder.personLike);
}
else
{
}
}
}
Но возникает ошибка "Cannot resolve symbol personViewHolder" при обращении к строчке personViewHolder в onPostExecute.
Как можно из этого метода установить картинку в мой view элемент PersonViewHolder?
Cannot resolve symbol personViewHolder
Еще бы не писал, он находится очевидно в другом классе. Либо делайте свой AsyncTask вложенным классом или передавайте personViewHolder в конструкторе AsyncTask
Сборка персонального компьютера от Artline: умный выбор для современных пользователей