使用“类模型”中的字符串加载图像

时间:2018-10-28 03:36:58

标签: android android-recyclerview

使用“类模型”加载图像时出现问题,我在类模型上的列表(名称)工作正常!但是图像不是从我的班级模型加载的。

[![Class model] [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中删除了很多项目,因为正文限制为30000个字符,我需要那些条件,因为当用户单击该项目时,图像和文本需要更改颜色

[![第一张图片来自我,需要添加图片!,超过42张带有图片的图片,我需要用户单击该项目,文本和图片会更改颜色,并且在同一张第一张图片上本来是一个水平卷...但是我改变了2 SpanCount。 secound图像是我使用另一个适配器的子类别!他们工作正常。但问题是第一张图片。] [5]] [5]

1 个答案:

答案 0 :(得分:1)

您正在将TagModel与String进行比较。它将始终为假,并且将执行“ 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));
    }
}

无论如何,您可以删除其他内容,并使用ColorStateList更改单击时的文本颜色。在此处检查解决方案:Change clickable TextView's color on focus and click?