Как выгружать вид после понижения на ViewHolder? - PullRequest
0 голосов
/ 04 мая 2019

так что в основном у меня есть два разных CardView, которые я хочу переключать после их нажатия. Поэтому я создал свой ViewHolder в качестве держателя для этих двух классов суперкласса, который представляет собой MaterialCardView.в ViewHolder, когда я пытаюсь проверить, какую карту я получил, я использую instanceof.и позже я рассматриваю CardView как его оригинальный класс.Тем не менее, как только я это сделаю, Java-ошибки «Тип параметра T имеет несовместимые верхние границы: View and String».

Я пробовал решение об аннулировании кэша и рефакторинга, которые являются основным решением для веб-сайта,К сожалению, это похоже на проблему с Java.

вот мой VH (пока):

public class ProjectItemHolder extends RecyclerView.ViewHolder {
    MaterialCardView projectItem;

    public ProjectItemHolder(MaterialCardView projectItem) {
        super(projectItem);
        if (projectItem instanceof unselectedCard) {
            ((unselectedCard) projectItem).imageUrl = itemView.findViewById(R.id.thumbnail);
            ((unselectedCard)projectItem).projectName = itemView.findViewById(R.id.projectName);
            ((unselectedCard)projectItem).projectDescription = itemView.findViewById(R.id.projectDescription);

мой невыбранный класс Card:

public class unselectedCard extends MaterialCardView {
    String projectName;
    String projectDescription;
    String imageUrl;

    public unselectedCard(Context context,String projectName, String projectDescription, String imageUrl) {
        super(context);
        this.projectName = projectName;
        this.projectDescription = projectDescription;
        this.imageUrl = imageUrl;
    }

    public String getImageUrl() {
        return imageUrl;
    }

    public String getProjectDescription() {
        return projectDescription;
    }

    public String getProjectName() {
        return projectName;
    }

    public void copyAnotherCard(unselectedCard card) {
        this.projectName = card.getProjectName();
        this.projectDescription = card.getProjectDescription();
        this.imageUrl = card.getImageUrl();
    }

и другие CardviewЯ пытаюсь согласовать:

public class selectedCard extends MaterialCardView {
    private String projectName,projectDescription,managerName;
    private String thumbnailUrl,imageUrl;

    public selectedCard(@NonNull Context context, String projectName, String projectDescription, String managerName, String thumbnailUrl, String imageUrl) {
        super(context);
        this.projectName = projectName;
        this.projectDescription = projectDescription;
        this.managerName = managerName;
        this.thumbnailUrl = thumbnailUrl;
        this.imageUrl = imageUrl;
    }

    public String getProjectName() {
        return projectName;
    }

    public String getProjectDescription() {
        return projectDescription;
    }

    public String getImageUrl() {
        return imageUrl;
    }

    public String getManagerName() {
        return managerName;
    }

    public String getThumbnailUrl() {
        return thumbnailUrl;
    }

    public void copyAnotherCard(selectedCard card) {
        this.projectName = card.getProjectName();
        this.projectDescription = card.getProjectDescription();
        this.managerName = card.getManagerName();
        this.thumbnailUrl = card.getThumbnailUrl();
        this.imageUrl = card.getImageUrl();
    }

Надеюсь, кто-нибудь подскажет мне, как исправить эту проблему.

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...