3

根据值:

例子

工资:+200

支付:-100

如果 pay 的值较高,则 200 的颜色为绿色。如果 pay 的值较低,则 100 的颜色为红色。

它每秒钟都会改变颜色,因为我有来自浏览器的 xml 文件链接并每秒更新 xml 文件。我喜欢这种颜色,因为我的 xml 文件中的链接会在几秒钟内刷新它并更改颜色取决于更高或更低。

4

4 回答 4

1

这里如果你的意思是xml文件是xml解析的,试试下面的

当您将文本从 xml 文件放入 listview 时,从 xml 文件中获取颜色并按如下方式解析它

String txt = " <font color=#408cc4>"+"这里需要打印的文本"+""; viewHolder.activity_hold_heading.setText(Html.fromHtml(txt));

这里color = the color you need

于 2012-09-13T05:01:20.320 回答
1

要实现这一点,您需要使用 Simpleadpter 绑定数据并使用 ViewBinder 您可以获得字符串值并根据您的要求更新颜色并更新数据 make 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;
            }           
}
于 2012-09-13T05:27:16.013 回答
1

尝试获取基适配器类的 getGroupView 方法。根据您获得的值尝试设置不同的颜色,如下所示。

方法前:

1)您必须从 String 获取值(需要突出显示的文本)并将其解析为 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);
           }
于 2012-09-13T05:13:31.133 回答
0
String txt = "<font color=Red>"+"-100"+"";
String txt = "<font color=Green>"+"200"+""; 
viewHolder.activity_hold_heading.setText(Html.fromHtml(txt));
于 2012-09-13T05:02:03.967 回答