使用“类模型”加载图像时出现问题,我在类模型上的列表(名称)工作正常!但是图像不是从我的班级模型加载的。
[![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]
答案 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?