2017-02-28 3 views
0

ListViewのTextViewの中には、ストライクスルー効果の影響を受けるものがあります。ストライクスルー効果のあるものだけが、ストライクスルー効果を持つものである必要があります。原価は割引価格のテキストビューとは異なります。ここでストライクスルーのTextViewsのListViewのバグ - ANDROID

は私のコードです:

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

にあなたは 'if'ブロックに' Paint'フラグをリセットしていません。 –

+0

ありがとうございます。そして、それはどのように見えるでしょうか?私はあなたの解決策を指摘するかもしれない答えを見つけました。 [リンク](http://stackoverflow.com/questions/18881817/removing-strikethrough-from-textview) –

+0

右。 'if'の' holder.textPrice'で[this](http://stackoverflow.com/a/18882030)を実行してください。 –

答えて

0

おかげ@マイク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))))); 
関連する問題