带有Strike-Through Textviews的ListView中的错误 - ANDROID

时间:2017-02-28 18:23:37

标签: android listview

我的ListView中的一些TextViews受到Strike-Through效果的影响,其中只有具有“折扣价”的那些应该是具有Strike-Through效果的那些。原始价格的TextView与折扣的TextView不同价。

这是我的代码:

if(data.getDisc_price().equals("0")){
        holder.textDiscPrice.setVisibility(View.INVISIBLE);
    }
    else{
        holder.textPrice.setPaintFlags(holder.textPrice.getPaintFlags()| Paint.STRIKE_THRU_TEXT_FLAG);
        holder.textDiscPrice.setText("Less " +data.getDisc_price()+"%" + " Php "+formatter.format(
                (Double.parseDouble(data.getPrice())
                        -(Double.parseDouble(data.getPrice())*(Double.parseDouble(data.getDisc_price())/100)))));

导致错误的原因是什么?任何想法?

1 个答案:

答案 0 :(得分:0)

感谢 @Mike M。

     if(data.getDisc_price().equals("0")){
                holder.textDiscPrice.setVisibility(View.INVISIBLE);
   /*SOLUTION*/ holder.textPrice.setPaintFlags(tv.getPaintFlags() & (~ Paint.STRIKE_THRU_TEXT_FLAG));
            }
            else{
                holder.textPrice.setPaintFlags(holder.textPrice.getPaintFlags()| Paint.STRIKE_THRU_TEXT_FLAG);
                holder.textDiscPrice.setText("Less " +data.getDisc_price()+"%" + " Php "+formatter.format(
                        (Double.parseDouble(data.getPrice())
                                -(Double.parseDouble(data.getPrice())*(Double.parseDouble(data.getDisc_price())/100)))));