我为我的文本视图设置了一些条件,但是当我滚动列表视图时,某些值以及之后的所有值,即使9不等于5,也会更改状态并满足条件。
我该怎么办?
p.s。:我尝试了两种不同的方法来设置条件
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
LayoutHandler layoutHandler;
if (row == null){
LayoutInflater layoutInflater =(LayoutInflater)this.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
row=layoutInflater.inflate(R.layout.row_layout,parent,false);
layoutHandler = new LayoutHandler();
layoutHandler.NUMER1=(TextView)row.findViewById(R.id.lin11);
layoutHandler.NUMER2=(TextView)row.findViewById(R.id.lin12);
layoutHandler.NUMER3=(TextView)row.findViewById(R.id.lin13);
row.setTag(layoutHandler);
}
else {
layoutHandler = (LayoutHandler)row.getTag();
}
DataProvider dataProvider = (DataProvider)this.getItem(position);
layoutHandler.NUMER1.setText(dataProvider.getNum1());
layoutHandler.NUMER2.setText(dataProvider.getNum2());
layoutHandler.NUMER3.setText(dataProvider.getNum3());
String equalll = "5";
if (layoutHandler.NUMER1.getText().toString().equals(equalll)){
layoutHandler.NUMER1.setTextColor(Color.GREEN);
}
if (dataProvider.getNum2().equals(equalll)) {
layoutHandler.NUMER2.setTextColor(Color.GREEN);
}
if (dataProvider.getNum3().equals(koti)) {
layoutHandler.NUMER3.setTextColor(Color.GREEN);
}
return row;
答案 0 :(得分:1)
即使不符合条件,您也必须为TextView
设置文字颜色,因为View
已在ListView
中回收。这意味着即使不满足条件,您之前设置的文本颜色也会显示在另一个项目中。
对您的代码进行以下编辑。
if (layoutHandler.NUMER1.getText().toString().equals(equalll)){
layoutHandler.NUMER1.setTextColor(Color.GREEN);
} else {
layoutHandler.NUMER1.setColor(YOUR_DEFAULT_COLOR);
}
if (dataProvider.getNum2().equals(equalll)) {
layoutHandler.NUMER2.setTextColor(Color.GREEN);
} else {
layoutHandler.NUMER2.setColor(YOUR_DEFAULT_COLOR);
}
if (dataProvider.getNum3().equals(koti)) {
layoutHandler.NUMER3.setTextColor(Color.GREEN);
} else {
layoutHandler.NUMER3.setColor(YOUR_DEFAULT_COLOR);
}