2017-05-18 11 views
1

私はアイテムの価格を表示するリストビューを持っています。私は古い価格を打ち、jsonの "オファー"価値に基づいて新しい価格を提示する必要があります。これは私のgetView()内でそれをやろうとする方法です。リストビューのスクロールに関する問題

if (dataList.get(position).get("Offer").equals("0")) { 
     viewHolder.view_price.setVisibility(View.GONE); 
    } else { 
     viewHolder.view_subprice.setPaintFlags(viewHolder.view_price.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG) 
    } 

最初は完全に動作します。しかし、スクロールすると、取り消し線が崩れる。ストライキがないテキストビューはストライキされているようです。

+0

ポストフルアダプター"ストライク"の意味は? – tompadre

+0

POJOクラスで "boolean strike = true/false"のようなキーを追加するのは簡単です。それは簡単です。 – ashish

+0

投稿コード@MridulSKumar – jagapathi

答えて

1

"if"のフラグを削除しようとしています。 アンドロイドにリストがあるのは、ビューが繰り返されていることです。 画面に5つのアイテム、合計10アイテムがあるとします。 第1アイテムのgetViewに、ストライキを設定した場合。あなたがそれを修正しなかったので、ビュー6では、あなたがスクロールするとき、それがストライキされる必要がないならば、それがすでに損なわれているならば、それはそのように残るよりも。 次のように試してみてください。

if (dataList.get(position).get("Offer").equals("0")) { 
    viewHolder.view_price.setVisibility(View.GONE); 
    viewHolder.view_subprice.setPaintFlags(null) 
} else { 
    viewHolder.view_subprice.setPaintFlags(viewHolder.view_price.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG) 
viewHolder.view_price.setVisibility(View.Visible); 
    } 
+1

また、ビューのリサイクルについて理解していることを確認してください。 http://stackoverflow.com/questions/11945563/how-listviews-recycling-mechanism-works –

+1

レスキューへのルーマニア:))) –

関連する問題