2017-11-04 9 views
0

この方法は機能し、仕事を終わらせるが、私はこれを行うより効率的な方法が必要であると感じている。私は色を含む配列を作成し、forループを使用して追加しようとしましたが、それを動作させることに失敗しました...任意のアドバイスをいただければ幸いです。以下のコードをご覧ください。あなたのコードRecyclerViewテキストに異なる色を追加する方が効率的ですか?

holder.lineName.setBackgroundColor(colors[position]); 2.use Integer[]配列

のおかげ

@Override 
    public void onBindViewHolder(LineViewHolder holder, int position) { 
     holder.lineName.setText(lineList.get(position).getLineName()); 
     holder.lineStatus.setText(lineList.get(position).getLineStatus()); 


     if(position==0) 
      holder.lineName.setBackgroundColor(Color.RED); 
     else if(position==1) 
      holder.lineName.setBackgroundColor(Color.BLUE); 
     else if(position==2) 
      holder.lineName.setBackgroundColor(Color.GREEN); 
     else if(position==3) 
      holder.lineName.setBackgroundColor(Color.YELLOW); 
     else if(position==4) 
      holder.lineName.setBackgroundColor(Color.DKGRAY); 
     else if(position==5) 
      holder.lineName.setBackgroundColor(Color.BLUE); 
     else if(position==6) 
      holder.lineName.setBackgroundColor(Color.RED); 
     else if(position==7) 
      holder.lineName.setBackgroundColor(Color.DKGRAY); 
     else if(position==8) 
      holder.lineName.setBackgroundColor(Color.YELLOW); 
     else if(position==9) 
      holder.lineName.setBackgroundColor(Color.GREEN); 
     else if(position==10) 
      holder.lineName.setBackgroundColor(Color.YELLOW); 
     else if(position==11) 
      holder.lineName.setBackgroundColor(Color.RED); 
     else if(position==12) 
      holder.lineName.setBackgroundColor(Color.DKGRAY); 
     else if(position==13) 
      holder.lineName.setBackgroundColor(Color.GREEN); 


    } 
+0

各位置の値を割り当てる静的な14位置のColor []配列を設定します。 'onBindViewHolder()'の 'position'の' Color'を得るために 'Color []'配列を参照してください。 – CommonsWare

答えて

1

1.addの色は次のように試してみてください。

Integer[] colors = {Color.RED,Color.BLUE,Color.GREEN}; 
holder.lineName.setBackgroundColor(colors[position]); 
+0

完璧!どうもありがとう。私は何か新しいことを学んだ! –

+0

私の答えを受け入れることができます。@ astricmobiles – KeLiuyue

関連する問題