値に応じて:
例
給料:+200
支払:-100
pay の値が高い場合、200 の色は緑です。pay の値が低い場合、100 の色は赤です。
ブラウザからxmlファイルへのリンクがあり、xmlファイルを毎秒更新しているため、毎秒色が変わります。私のxmlファイルのリンクが数秒で更新され、色が高いか低いかによって色が変わるので、一緒に色が好きです。
ここで、xml ファイルが xml 解析用であることを意味する場合は、次のいずれかを試してください。
xmlファイルからリストビューにテキストを配置している間に、xmlファイルから色を取得し、次のように解析します
String txt = " <font color=#408cc4>
"+"ここに印刷する必要があるテキスト"+""; viewHolder.activity_hold_heading.setText(Html.fromHtml(txt));
ここcolor = the color you need
ベースアダプタクラスのgetGroupViewメソッドを試してみてください。取得した値に応じて、次のように異なる色を設定してみてください。
メソッドの前:
1)文字列から値(テキストを強調表示する必要があります)を取得し、それをintに解析して比較する必要があります。
2)文字列から値の開始インデックスと終了インデックスを取得する必要があります(テキストを強調表示する必要があります)。
@Override
public View getGroupView(final int groupPosition, boolean isExpanded,View convertView, ViewGroup parent) {
Spannable WordtoSpan = new SpannableString(valuestring);
if(yourvalue>200){
WordtoSpan.setSpan(new ForegroundColorSpan(Color.parseColor("##00FF40")),start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
}else if (yourvalue<100){
WordtoSpan.setSpan(new ForegroundColorSpan(Color.parseColor("#DF0101")),start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
}
yourtextview.setText(WordtoSpan);
}
これを実現するには、Simpleadpter でデータをバインドする必要があり、ViewBinder を使用して、文字列値を取得し、要件に従って色を更新し、データを更新して、adpter Notifydatasetchange を作成することができます。
adapater1 = new SimpleAdapter(Byshedulelist.this, shedulelist, R.layout.rowshedule,
new String[] { "im","Countryname", "Titel"},
new int[] { R.id.rowshedulecountryimg,R.id.shedulerowCountrynametxt, R.id.shedulerowtitle,});
adapater1.setViewBinder(new MyViewBinder1());
itemlist.setAdapter(adapater1);
class MyViewBinder1 implements ViewBinder
{ @Override
public boolean setViewValue(View view, Object Status,String textRepresentation)
{
String complet="Pay:+200 ";
String notcomlet="Pay:-100";
String getdata= textRepresentation;
if((view instanceof TextView) & (Status instanceof String) )
{
TextView iv= (TextView) view;
if(complet.equals(Status))
{
r1=true;
r2=false;
iv.setText(textRepresentation);
iv.setTextColor(Color.parseColor("#008000"));
return true;
}
else if(notcomlet.equals(Status))
{
r2=true;
r1=false;
iv.setText(textRepresentation);
iv.setTextColor(Color.RED);
return true;
}
if(r1 && (getdata.startsWith("Pay: ")))
{
iv.setText(textRepresentation);
iv.setTextColor(Color.parseColor("#008000"));
return true;
}
else if (r2 && (getdata.startsWith("Pay: ")))
{
//TextView iv= (TextView) view;
iv.setText(textRepresentation);
iv.setTextColor(Color.RED);
return true;
}
}
return false;
}
}
String txt = "<font color=Red>"+"-100"+"";
String txt = "<font color=Green>"+"200"+"";
viewHolder.activity_hold_heading.setText(Html.fromHtml(txt));