Nano Hash - криптовалюты, майнинг, программирование

Загрузить изображение со строкой из «модели класса»

У меня проблема с загрузкой изображений с моей «моделью класса», мой список (имя) в модели класса работает нормально! но изображения не загружаются из моей модели класса.

[![Модель класса][1]][1] Посмотрите на "красный квадрат", почему setImages не используется?

[![Заполнение списка][2]][2] Заполнение списка! Как я уже сказал! ""имя работает. но изображение все равно [![не знаю почему.][3][3]

Макет моего @Override public RecyclerViewAdapter2.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.activity_marca_tag_servico_layout, parent, false); return new RecyclerViewAdapter2.ViewHolder(view); }

[![Понятия не имею, почему изображение не загружается][4]][4]

    di_tags1();
    DICategoriasRecyclerView = findViewById(R.id.DICategoriasRecyclerView);
    selectedItemCount = 0;

    recyclerViewAdapter2 = new RecyclerViewAdapter2(taglista, this);
    LinearLayoutManager linearLayoutManager = new LinearLayoutManager(this);
    DICategoriasRecyclerView.setLayoutManager(linearLayoutManager);
    DICategoriasRecyclerView.setLayoutManager(new GridLayoutManager(this,2));
    DICategoriasRecyclerView.setHasFixedSize(true);
    recyclerViewAdapter2.notifyDataSetChanged();

    DIBotaoContinuarTag = (Button) findViewById(R.id.DIBotaoContinuarTag);

    DIBotaoContinuarTag.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            openDIContinuarTag();
        }
    });

    DICategoriasRecyclerView.setAdapter(recyclerViewAdapter2);
}



    Intent intent = new Intent(this, DISubCategorias.class);
    intent.putStringArrayListExtra("Result", ListaFinal);
    startActivity(intent);

    //Toast.makeText(getApplicationContext(), str, Toast.LENGTH_LONG).show(); // FUCK
    //===========================

}

// quando o usuário clicar no item na lista RecyclerView, nosso adaptador criado invocará a seguinte função e passará a posição.
@Override
public void selectedItemCount(int count) {
    selectedItemCount = count;
}


@Override
protected void onNewIntent(Intent intent) {
    super.onNewIntent(intent);
}

}

Я просто хочу знать, как я могу загрузить изображение из этой модели класса? потому что строка работает нормально.

ИЗМЕНИТЬ, МОЙ АДАПТЕР

public class RecyclerViewAdapter2 extends RecyclerView.Adapter<RecyclerViewAdapter2.ViewHolder> {

ArrayList<TagsModel> TagsDaMarca;//change like this
ArrayList<TagsModel> SubServicoTagsDaMarca;//change like this
ArrayList<TagsModel> DICategorias;//change like this
ArrayList<String> DISubCategorias;

HashMap<Integer, List<String>> ListaCatSubCat = new HashMap<Integer, List<String>>();
public static SparseBooleanArray sparseBooleanArray;
// for identifying: in list which items are selected
OnRecyclerViewItemClickListener listener;
int meutotal = 0;


public RecyclerViewAdapter2(ArrayList<TagsModel> TagsDaMarca1, OnRecyclerViewItemClickListener listener) {
    TagsDaMarca = TagsDaMarca1;
    SubServicoTagsDaMarca = TagsDaMarca1;
    DICategorias = TagsDaMarca1;


    sparseBooleanArray = new SparseBooleanArray();
    this.listener = listener;
}


@Override
public RecyclerViewAdapter2.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
    View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.activity_marca_tag_servico_layout, parent, false);
    return new RecyclerViewAdapter2.ViewHolder(view);
}

@Override
public void onBindViewHolder(RecyclerViewAdapter2.ViewHolder holder, int position) {

    TagsModel item = DICategorias.get(position); //change like this

    if (item.equals("0")) {
        holder.itemTextView.setText(item.getName());
        holder.DICategoriasIcones.setImageResource(item.getImages());
        holder.itemTextView.setBackgroundColor(Color.TRANSPARENT);
        holder.itemTextView.setTextColor(Color.rgb(255, 0, 167));
        holder.DICategoriasIcones.setEnabled(false);
        holder.itemTextView.setEnabled(false);
    } else if (item.equals("1")) {
        holder.itemTextView.setText(item.getName());
        holder.DICategoriasIcones.setImageResource(item.getImages());
        holder.itemTextView.setBackgroundColor(Color.TRANSPARENT);
        holder.itemTextView.setTextColor(Color.rgb(255, 0, 167));
        holder.DICategoriasIcones.setEnabled(false);
        holder.itemTextView.setEnabled(false);
    } else if (item.equals("2")) {
        holder.itemTextView.setText(item.getName());
        holder.DICategoriasIcones.setImageResource(item.getImages());
        holder.itemTextView.setBackgroundColor(Color.TRANSPARENT);
        holder.itemTextView.setTextColor(Color.rgb(255, 0, 167));
        holder.DICategoriasIcones.setEnabled(false);
        holder.itemTextView.setEnabled(false);
    } else if (item.equals("3")) {
        holder.itemTextView.setText(item.getName());
        holder.itemTextView.setBackgroundColor(Color.TRANSPARENT);
        holder.DICategoriasIcones.setImageResource(item.getImages());
        holder.itemTextView.setTextColor(Color.rgb(255, 0, 167));
        holder.DICategoriasIcones.setEnabled(false);
        holder.itemTextView.setEnabled(false);
    } else if (item.equals("4")) {
        holder.itemTextView.setText(item.getName());
        holder.itemTextView.setBackgroundColor(Color.TRANSPARENT);
        holder.DICategoriasIcones.setImageResource(item.getImages());
        holder.itemTextView.setTextColor(Color.rgb(255, 0, 167));
        holder.DICategoriasIcones.setEnabled(false);
        holder.itemTextView.setEnabled(false);
    } else if (item.equals("5")) {
        holder.itemTextView.setText(item.getName());
        holder.itemTextView.setBackgroundColor(Color.TRANSPARENT);
        holder.DICategoriasIcones.setImageResource(item.getImages());
        holder.itemTextView.setTextColor(Color.rgb(255, 0, 167));
        holder.DICategoriasIcones.setEnabled(false);
        holder.itemTextView.setEnabled(false);
    } else if (item.equals("6")) {
        holder.itemTextView.setText(item.getName());
        holder.itemTextView.setBackgroundColor(Color.TRANSPARENT);
        holder.DICategoriasIcones.setImageResource(item.getImages());
        holder.itemTextView.setTextColor(Color.rgb(255, 0, 167));
        holder.DICategoriasIcones.setEnabled(false);
        holder.itemTextView.setEnabled(false);
    } else if (item.equals("7")) {
        holder.itemTextView.setText(item.getName());
        holder.itemTextView.setBackgroundColor(Color.TRANSPARENT);
        holder.DICategoriasIcones.setImageResource(item.getImages());
        holder.itemTextView.setTextColor(Color.rgb(255, 0, 167));
        holder.DICategoriasIcones.setEnabled(false);
        holder.itemTextView.setEnabled(false);
    } else if (item.equals("8")) {
        holder.itemTextView.setText(item.getName());
        holder.itemTextView.setBackgroundColor(Color.TRANSPARENT);
        holder.DICategoriasIcones.setImageResource(item.getImages());
        holder.itemTextView.setTextColor(Color.rgb(255, 0, 167));
        holder.DICategoriasIcones.setEnabled(false);
        holder.itemTextView.setEnabled(false);
    } else if (item.equals("9")) {
        holder.itemTextView.setText(item.getName());
        holder.itemTextView.setBackgroundColor(Color.TRANSPARENT);
        holder.DICategoriasIcones.setImageResource(item.getImages());
        holder.itemTextView.setTextColor(Color.rgb(255, 0, 167));
        holder.DICategoriasIcones.setEnabled(false);
        holder.itemTextView.setEnabled(false);
    } else if (item.equals("10")) {
        holder.itemTextView.setText(item.getName());
        holder.itemTextView.setBackgroundColor(Color.TRANSPARENT);
        holder.DICategoriasIcones.setImageResource(item.getImages());
        holder.itemTextView.setTextColor(Color.rgb(255, 0, 167));
        holder.DICategoriasIcones.setEnabled(false);
        holder.itemTextView.setEnabled(false);
    } else if (item.equals("11")) {
        holder.itemTextView.setText(item.getName());
        holder.itemTextView.setBackgroundColor(Color.TRANSPARENT);
        holder.DICategoriasIcones.setImageResource(item.getImages());
        holder.itemTextView.setTextColor(Color.rgb(255, 0, 167));
        holder.DICategoriasIcones.setEnabled(false);
        holder.itemTextView.setEnabled(false);
    } else if (item.equals("12")) {
        holder.itemTextView.setText(item.getName());
        holder.itemTextView.setBackgroundColor(Color.TRANSPARENT);
        holder.DICategoriasIcones.setImageResource(item.getImages());
        holder.itemTextView.setTextColor(Color.rgb(255, 0, 167));
        holder.DICategoriasIcones.setEnabled(false);
        holder.itemTextView.setEnabled(false);
    } else if (item.equals("13")) {
        holder.itemTextView.setText(item.getName());
        holder.itemTextView.setBackgroundColor(Color.TRANSPARENT);
        holder.DICategoriasIcones.setImageResource(item.getImages());
        holder.itemTextView.setTextColor(Color.rgb(255, 0, 167));
        holder.DICategoriasIcones.setEnabled(false);
        holder.itemTextView.setEnabled(false);
    } else if (item.equals("14")) {
        holder.itemTextView.setText(item.getName());
        holder.itemTextView.setBackgroundColor(Color.TRANSPARENT);
        holder.DICategoriasIcones.setImageResource(item.getImages());
        holder.itemTextView.setTextColor(Color.rgb(255, 0, 167));
        holder.DICategoriasIcones.setEnabled(false);
        holder.itemTextView.setEnabled(false);
    } else if (item.equals("15")) {
        holder.itemTextView.setText(item.getName());
        holder.itemTextView.setBackgroundColor(Color.TRANSPARENT);
        holder.DICategoriasIcones.setImageResource(item.getImages());
        holder.itemTextView.setTextColor(Color.rgb(255, 0, 167));
        holder.DICategoriasIcones.setEnabled(false);
        holder.itemTextView.setEnabled(false);
    } else if (item.equals("16")) {
        holder.itemTextView.setText(item.getName());
        holder.itemTextView.setBackgroundColor(Color.TRANSPARENT);
        holder.DICategoriasIcones.setImageResource(item.getImages());
        holder.itemTextView.setTextColor(Color.rgb(255, 0, 167));
        holder.DICategoriasIcones.setEnabled(false);
        holder.itemTextView.setEnabled(false);
    } else if (item.equals("17")) {
        holder.itemTextView.setText(item.getName());
        holder.itemTextView.setBackgroundColor(Color.TRANSPARENT);
        holder.DICategoriasIcones.setImageResource(item.getImages());
        holder.itemTextView.setTextColor(Color.rgb(255, 0, 167));
        holder.DICategoriasIcones.setEnabled(false);
        holder.itemTextView.setEnabled(false);
    } else {
        holder.itemTextView.setText(item.getName());
        if (sparseBooleanArray.get(position)) {
            holder.itemTextView.setBackgroundColor(Color.TRANSPARENT);
            holder.itemTextView.setTextColor(Color.rgb(255, 0, 167));
        } else {
            holder.itemTextView.setBackgroundColor(Color.TRANSPARENT);
            holder.itemTextView.setTextColor(Color.rgb(190, 190, 190));
        }
    }
}

@Override
public int getItemCount() {
    if (TagsDaMarca != null) {
        return TagsDaMarca.size();
    }else if (SubServicoTagsDaMarca != null) {
        return SubServicoTagsDaMarca.size();
    }else if (DICategorias != null) {
        return DICategorias.size();
    }
    return 0;
}


/******** View Holder Class*/
public class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener {
    TextView itemTextView;
    ImageView DICategoriasIcones;
    public TextView alert;

    public ViewHolder(View itemView) {
        super(itemView);
        itemTextView = itemView.findViewById(R.id.itemTextView);
        itemTextView.setOnClickListener(this);

        DICategoriasIcones = itemView.findViewById(R.id.DICategoriasIcones);
        DICategoriasIcones.setOnClickListener(this);
    }

    @Override
    public void onClick(View view) {

        if (!sparseBooleanArray.get(getAdapterPosition())) {
            if (meutotal < 3) {
                sparseBooleanArray.put(getAdapterPosition(), true);
                notifyItemChanged(getAdapterPosition());
                meutotal = meutotal + 1;
            }
        } else // if clicked item is already selected
        {
            sparseBooleanArray.put(getAdapterPosition(), false);
            notifyItemChanged(getAdapterPosition());
            meutotal = meutotal - 1;
        }
    }
}


public interface OnRecyclerViewItemClickListener {
    public void selectedItemCount(int count);
 }
}

Я удаляю многие элементы из onBindViewHolder, поскольку длина тела ограничена 30 000 символов. Мне нужны эти условия, потому что, когда пользователь нажимает на элемент, изображение и текст должны изменить цвет

[![Первое изображение взято из того, что мне нужно добавить изображение!, это более 42 итенов с изображением, мне нужно, чтобы пользователь щелкнул элемент, текст и изображение изменили цвет, и на том же первом изображении это должно было быть горизонтальный рулон ... но я изменил с 2 SpanCount. а второе изображение - это подкатегории, для которых я использую другой адаптер! они отлично работают. но проблема в первом изображении.][5][5]


Ответы:


1

Вы сравниваете TagModel со строкой. Он всегда будет ложным, и будет выполнено «оператор else». Поскольку вы не меняете изображение в «другом» (только имя), это ваша проблема.

Просто измените код адаптера, например, на:

// ...
if (position <= 17) {
    holder.itemTextView.setText(item.getName());
    holder.itemTextView.setBackgroundColor(Color.TRANSPARENT);
    holder.DICategoriasIcones.setImageResource(item.getImages());
    holder.itemTextView.setTextColor(Color.rgb(255, 0, 167));
    holder.DICategoriasIcones.setEnabled(false);
    holder.itemTextView.setEnabled(false);
} else {
    holder.itemTextView.setText(item.getName());
    if (sparseBooleanArray.get(position)) {
        holder.itemTextView.setBackgroundColor(Color.TRANSPARENT);
        holder.itemTextView.setTextColor(Color.rgb(255, 0, 167));
    } else {
        holder.itemTextView.setBackgroundColor(Color.TRANSPARENT);
        holder.itemTextView.setTextColor(Color.rgb(190, 190, 190));
    }
}

В любом случае, вы можете удалить свой else и использовать ColorStateList, чтобы изменить цвет текста при нажатии. Проверьте решение здесь: Изменить цвет кликабельного TextView в фокусе и щелкнуть?

28.10.2018
  • Вы сравниваете TagModel со строкой, используя равенство. Это никогда не будет правдой. if (item.equals(0)) { Таким образом, else всегда выполняется, и вы не меняете изображение. Вы должны сравнить позицию (если позиция ‹= 17) { ... }. Это решит проблему. Тем не менее, я все еще смущен вашими если. 28.10.2018
  • Признаюсь, я запутался сам с собой, ха-ха. попробую ваш (если позиция ‹= 17). дай мне проверить 28.10.2018
  • Кстати, посмотрите это видео (youtube.com/watch?v=dlhfDn8Da5s). думаю, вы поймете немного лучше. 28.10.2018
  • Я забыл упомянуть! в этом видео я использую тот же адаптер для «подкатегорий», но я заменил его на адаптер 3. 28.10.2018
  • О боже, ваша логика сработала if position <= 17 теперь изображение изменилось!, но как я могу изменить цвет текста при нажатии? потому что теперь он розовый. Мне нужно, чтобы было как на видео выше. я изменил на своем адаптере держатель.itemTextView.setEnabled для TRUE. 28.10.2018
  • Просто используйте ColorStateList (и удалите свой else - он больше не понадобится). См. https://stackoverflow.com/questions/5371719/change-clickable-textviews-color-on-focus-and-click, чтобы узнать подробности. 28.10.2018
  • Не забудьте отметить мой ответ как правильный. 28.10.2018
  • Я никогда тебя не забуду (нохомо) ОМГ, я потерял 6 дней в этом SH*T, спасибо, мой друг ‹/3. Я обязательно приму ваш ответ. 28.10.2018
  • Новые материалы

    Кластеризация: более глубокий взгляд
    Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

    Как написать эффективное резюме
    Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

    Частный метод Python: улучшение инкапсуляции и безопасности
    Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

    Как я автоматизирую тестирование с помощью Jest
    Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

    Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
    Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

    Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
    В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

    Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
    В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..