我们有一个带有以下适配器代码的androd列表视图。
@Override
public View getView(int position, View convertView, ViewGroup parent) {
final ViewHolder holder;
if (convertView == null) {
holder = new ViewHolder();
LayoutInflater mInflater = (LayoutInflater)
context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
convertView = mInflater.inflate(R.layout.single_item, null);
holder.name = (TextView) convertView
.findViewById(R.id.name);
} else {
holder = (ViewHolder) convertView.getTag();
}
items itm = items.get(position);
Button stat = (Button) convertView.findViewById(R.id.status);
holder.items = itm;
stat.setOnClickListener(new View.OnClickListener()
{
@Override
public void onClick(View v)
{
Intent i = new Intent(context, anotherActivity.class);
i.putExtra("name", holder.items.getName());
context.startActivity(i);
}
});
if(itm.getStatus() == 1) {
convertView.setBackgroundColor(Color.parseColor("#f2dededb"));
stat.setText("No");
stat.setEnabled(false);
}
return convertView;
}
列表中有多个项目,我们正在尝试根据一些标志设置特定项目的背景色。但是颜色是随机设置的。
答案 0 :(得分:1)
您还必须为其他项目设置color
if(itm.getStatus() == 1) {
convertView.setBackgroundColor(Color.parseColor("#f2dededb"));
stat.setText("No");
stat.setEnabled(false);
} else {
convertView.setBackgroundColor(Color.parseColor("//Default color"));
// Any other code
}
如果要在color
/ ListView
中以某种条件为任何项目设置Recyclerview
,则还必须为其他项目设置color
。(对于任何项目均有效其他条件)
答案 1 :(得分:0)
if(itm.getStatus() == 1) {
convertView.setBackgroundColor(ContextCompat.getColor(context,R.color.colorPrimary);
} else {
convertView.setBackgroundColor(ContextCompat.getColor(context,R.color.colorPrimary));
}
您可以根据条件设置颜色。