1

テキストビューをリスト要素として表示します。このテキストビューは、メソッドから値を返すことによって値を取得するgetValues()ため、テキストビューをこのように設定すると、t1.setText(getValues());これらの値は (123 キロ、12 キロ、13 キロ、15 キロ、198 キロ、135 キロ、456 キロ、 12 キロ、135 キロ、147 キロ、....)すべての要素を最初の要素と比較したいのですが、最初の要素よりも大きい場合はテキストの色が赤で、最初の要素よりも小さい場合は青です。試してみましたこのようなもので、2つのリストを取得しました。

私が試したこと

 List<Integer> myList = Arrays.asList(12,34,45,23,45,7,68,4,345,56,67,4,999,454,6,76,0);
        Iterator<Integer> iter = myList.iterator();
        List<Integer> lessList = new ArrayList<Integer>(), biggerList = new ArrayList<Integer>();
        Integer firstItem = iter.next();
        while (iter.hasNext()) {
            Integer currElement = iter.next();
            if (firstItem.compareTo(currElement) > -1) {
                lessList.add(currElement);
            } else {
                biggerList.add(currElement);
            }
        }

ここで、テキストビューのテキストと同じテキストビューの2つの色を設定する方法がわかりません。助けて。

このようなコードを試しました

 if(odo_chk_num>400)
                       {

                              if(t2!=null)
                              {
                                  t2.setTextColor(Color.RED);
                                t2.setText(getValues());
                              }

                       }  

 else
                       {
                           t2.setTextColor(Color.BLACK);
                       }

しかし、ここで最初に条件が実行されると、すべてのテキストの色が赤に変わりますが、必要なテキストは条件のみに基づいて赤でなければなりません。 アダプタークラス

public class FileArrayAdapter extends ArrayAdapter<Option>{

    private Context c;
    private int id;
    private List<Option>items;

    public FileArrayAdapter(Context context, int textViewResourceId,
            List<Option> objects) {
        super(context, textViewResourceId, objects);
        c = context;
        id = textViewResourceId;
        items = objects;
    }
    public Option getItem(int i)
     {
         return items.get(i);
     }
     @Override
       public View getView(int position, View convertView, ViewGroup parent) {
               View v = convertView;
               if (v == null) {
                   LayoutInflater vi = (LayoutInflater)c.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                   v = vi.inflate(id, null);
               }
               final Option o = items.get(position);
               if (o != null) {
                       TextView t1 = (TextView) v.findViewById(R.id.TextView01);
                       TextView t2 = (TextView) v.findViewById(R.id.TextView02);

                       if(o.getDDS().equals("Odometer reading:"))
                       {

                           int odo_num, odo_chk_num = 0;
                           System.out.println("");
                           String odo_str=o.getSpans();

                           for(int i = 0 ; i<o.getSpans().length();i++)
                           {
                               char xyz=odo_str.charAt(i);
                               System.out.println("");
                               if(xyz >= '0' && xyz <= '9')
                               {
                               odo_num=(int)xyz;

                               odo_chk_num=  odo_chk_num*10 + odo_num;

                               }

                           }

                         //  System.out.println("after digit" + odo_chk_num);


                           if(odo_chk_num>40000)
                           {
                               if(t1!=null)
                                    t1.setText(o.getDDS());
                                  if(t2!=null)
                                  {
                                     // t2.setTextColor(Color.RED);
                                      SpannableStringBuilder sb = new SpannableStringBuilder(o.getSpans());
                                      ForegroundColorSpan fcs = new ForegroundColorSpan(Color.rgb(158, 158, 158));
                                      sb.setSpan(fcs, 0, 4, Spannable.SPAN_INCLUSIVE_INCLUSIVE); 
                                    t2.setText(sb);
                                  }

                           } 

                       }


                       else
                       {
                           t2.setTextColor(Color.BLACK);

                       if(t1!=null)
                        t1.setText(o.getDDS());
                       if(t2!=null)
                        t2.setText(o.getSpans());
                       }

               }
               return v;
       }

}
4

1 に答える 1

0

1つのラッパークラスにそのクラスのすべての変数と、int型のカラーコードである1つの追加の変数を取り、1つのメソッドでこの条件を計算し、すべてのデータとカラーコードをラッパーに入力した後、このラッパーと色でリストを入力しますビューをスクロールしている間、コードも一定であるか、変化しません。

于 2013-10-15T09:34:14.097 に答える