如何解决无需 OnClick 即可为不同的 ListView 项目自定义背景色
我写了一个带有适配器和模型的 ListView。我想通过程序在 for 循环中向 ListView 添加一个双精度值。假设一个值 范围红色。
如果没有 OnClick 方法,我怎么能做到这一点?
就像现在一样,整个列表将以上次选择的颜色着色。
该模型具有以下值,带有构造函数和getter和setter
public class ListModel{
private String name;
private String value;
private String range;
private String info;
private String color;
我的适配器
public class IngredientsAdapter extends ArrayAdapter<IngredientsListModel> {
private static final String TAG = "IngredientsListAdapter";
private Context mContext;
int mRessource;
public IngredientsAdapter(Context context,int resource,ArrayList<IngredientsListModel> objects) {
super(context,resource,objects);
this.mContext = context;
this.mRessource = resource;
}
@NonNull
@Override
public View getView(int position,@Nullable View convertView,@NonNull ViewGroup parent) {
// Informationen der Inhaltsstoffe
String name = getItem(position).getIngredientsName();
String val = getItem(position).getValue();
String range = getItem(position).getRange();
// Kreiere ein IngredientsListModel Objekt mit diesen Informationen
IngredientsListModel ingredients = new IngredientsListModel(name,val,range);
LayoutInflater inflater = LayoutInflater.from(mContext);
convertView = inflater.inflate(mRessource,parent,false);
TextView tvIngredientsName = (TextView) convertView.findViewById(R.id.txtitem);
TextView tvValue = (TextView) convertView.findViewById(R.id.txtitem2);
TextView tvRange = (TextView) convertView.findViewById(R.id.txtitem3);
tvIngredientsName.setText(name);
tvValue.setText(val);
tvRange.setText(range);
return convertView;
}
}
我的主要
if ((value >= x) && (value <= y)){
ingredients = new IngredientsListModel(key,Double.toString(roundOff) + "g",x + " - " + y);
mIngredientsListView.setBackgroundColor(Color.GREEN);
ingredientsList.add(ingredients);
ingredientsAdapter.notifyDataSetChanged();
}else if((value < x)){
ingredients = new IngredientsListModel(key,Double.toString(roundOff) + "g zu niedrig",x + " - " + y);
mIngredientsListView.setBackgroundColor(Color.YELLOW);
ingredientsList.add(ingredients);
ingredientsAdapter.notifyDataSetChanged();
}else if((value > x)){
ingredients = new IngredientsListModel(key,Double.toString(roundOff) + "g zu hoch",x + " - " + y);
mIngredientsListView.setBackgroundColor(Color.RED);
ingredientsList.add(ingredients);
ingredientsAdapter.notifyDataSetChanged();
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。