テキストビューをリスト要素として表示します。このテキストビューは、メソッドから値を返すことによって値を取得する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;
}
}