Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 设置TextView textColor会更改整个ListView项目的颜色_Android_Listview - Fatal编程技术网

Android 设置TextView textColor会更改整个ListView项目的颜色

Android 设置TextView textColor会更改整个ListView项目的颜色,android,listview,Android,Listview,我正在设置一个ArrayAdapter,如下所示: @NonNull @Override public View getView(int position, View convertView, ViewGroup parent) { View view = convertView; if(view == null){ LayoutInflater layoutInflater = LayoutInflater.from(getContext());

我正在设置一个ArrayAdapter,如下所示:

@NonNull
@Override
public View getView(int position, View convertView, ViewGroup parent) {
    View view = convertView;
    if(view == null){
        LayoutInflater layoutInflater = LayoutInflater.from(getContext());
        view = layoutInflater.inflate(R.layout.row_product_item, null);
    }

    TextView txtProductName = (TextView)view.findViewById(R.id.txt_product_name);
    TextView txtProductRemaining = (TextView)view.findViewById(R.id.txt_product_remaining);
    TextView txtProductPrice = (TextView)view.findViewById(R.id.txt_product_sale_price);

    String productName = getItem(position).productName;
    String productRemaining = Number.floatToStringAsNumber(getItem(position).productRemaining);
    String productPrice = Number.floatToStringAsPrice(getItem(position).productSellPrice, true);

    txtProductName.setText(productName);
    txtProductRemaining.setText(productRemaining);
    txtProductPrice.setText(productPrice);

    /**
     * Coloring
     */
    if (getItem(position).productRemaining <= 0){
        txtProductRemaining.setTextColor(Color.parseColor("#ff7f7f"));
    }

    return view;

}
@NonNull
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
视图=转换视图;
如果(视图==null){
LayoutInflater LayoutInflater=LayoutInflater.from(getContext());
视图=布局更平坦。充气(R.layout.row\u product\u item,空);
}
TextView txtProductName=(TextView)view.findViewById(R.id.txt\产品\名称);
TextView txtProductRestaining=(TextView)view.findViewById(R.id.txt\u product\u restaining);
TextView txtProductPrice=(TextView)view.findViewById(R.id.txt\u product\u sale\u price);
字符串productName=getItem(position).productName;
字符串productrestaining=Number.floatToStringAsNumber(getItem(position).productRestaining);
字符串productPrice=Number.floatToString价格(getItem(position).productSellPrice,true);
txtProductName.setText(产品名称);
txtProductResisting.setText(ProductResisting);
txtProductPrice.setText(productPrice);
/**
*着色
*/

如果(getItem(position).productRemaining
ListView
重用视图,那么一旦一个项目上色,其他视图在加载时也会上色。以下是您需要做的操作,以避免出现这种情况:

if (getItem(position).productRemaining <= 0){
    txtProductRemaining.setTextColor(Color.parseColor("#ff7f7f"));
}
else {
     txtProductRemaining.setTextColor(Color.BLACK));. // Or whatever default color you prefer
}

if(getItem(position).productRemaining
ListView
重用视图,因此一旦一个项目上色,其他视图在加载时也会上色。以下是您需要做的操作,以避免出现这种情况:

if (getItem(position).productRemaining <= 0){
    txtProductRemaining.setTextColor(Color.parseColor("#ff7f7f"));
}
else {
     txtProductRemaining.setTextColor(Color.BLACK));. // Or whatever default color you prefer
}

if(获取项目(位置).product剩余时间一旦最小时间过去,您就确定您的if条件吗?是的。当@A.A.mencted更改时,无论何时,整个适配器都将永久设置if。因此我必须添加一个“else”条件您确定您的if条件吗?是的。当@A.A.mencted更改时,无论何时,整个适配器都将设置if permand因此,我必须添加一个“else”条件