2016-03-25 22 views
0

私はAndroid Appでリストビューを作成しています。私のCustomAdapterでは、Forループの中にif文があります。コードを見てみましょう。マイCustomAdapterクラスでifステートメント内のforループandroid

public String[] timePartOne = {"10:00 AM", "10:30 AM", "11:00 AM", "11:30 AM"}; 
public boolean[] avaibleOne = {true, false, true, false}; 

私は、この状態で使用している:

for(int i = 0; i < timePartOne.length;i++) { 

         if (avaibleOne[i] == true) { 
          holder.textview.setText(timePartOne[i]); 
          holder.textview.setTextColor(Color.parseColor("#0072BA")); 
         } else { 
          holder.textview.setText(timePartOne[i]); 
          holder.textview.setTextColor(Color.parseColor("#e6e6e6")); 
          holder.textview.setPaintFlags(holder.textview.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG); 
         } 

       } 

をしかし、このループがcontinuously runである理由を私は知りません。レビューごとにループは4 timeを実行します。 timePartOne.length is 4です。

助けてください。

+0

avaibleOneとは何ですか?ここにクラス全体を投稿してください。障害は外部にある可能性があります。 –

+0

@SagarNayakそれは間違いを書いています。 –

+0

@ cricket_007私は理解できないと言っているので、私は理解できるように簡潔に説明してください。 –

答えて

0

forgetViewアダプターの方法で使用しないでください。 getViewメソッドのpositionパラメータを使用してください。

int i = position /*parameter of getView method */; 

     if (avaibleOne[i] == true) { 
      holder.textview.setText(timePartOne[i]); 
      holder.textview.setTextColor(Color.parseColor("#0072BA")); 
     } else { 
      holder.textview.setText(timePartOne[i]); 
      holder.textview.setTextColor(Color.parseColor("#e6e6e6")); 
      holder.textview.setPaintFlags(holder.textview.getPaintFlags() | Paint.STRIKE_THRU_TEXT_FLAG); 
     } 
+0

getView()が呼び出されるなどのことはありません。 – kidnan1991

+0

それは魅力のような作品です –

関連する問題