2013-08-26 85 views
0

我要问的问题的情况下与我以前question更改颜色

我有下面这段代码:

CallSoap cs=new CallSoap(); 


      lst=cs.GetMessage(id); 
      lstNew=cs.GetNewMessage(id); 

      int numOfMessages=lst.length-lstNew.length; 

      ArrayAdapter<String> adpt = new ArrayAdapter<String>(Messages.this, android.R.layout.simple_list_item_1,lst); 
      lm.setAdapter(adpt); 

      for (int i=0;i<numOfMessages;i++) 
      { 
       lm. 
      } 

我得到了变量的新邮件数:numOfMessages

lm是我的listview

ListView lm=(ListView)findViewById(R.id.listView1); 

假设numOfMessages=3,然后我只想让我的列表视图(LM)为红色的前3种元素的文本的颜色。

请帮助我如何在这种情况下在这个循环中做到这一点。

回答

1

尝试impliment唯一ID还是上次的附加列取并在下一次比较数据库获取新的ID或时间,并按照一行显示的颜色..

2

您必须在您的适配器中执行此操作。创建扩展基础适配器的自定义适配器,然后您可以检查列表项的位置并应用所需的任何颜色。

入住这里:Custom Adapter for List View

+0

但我怎么能得到的ListView的第i个指标? –

+0

在getView(int position,View convertView,ViewGroup parent)方法中,第一个参数是列表中项目的位置。你应该检查这个值。 – fasteque

+0

改变颜色的语法是什么? –

2

只要确保实际的3个项目的指标是由于事实CustomAdapter将回收从而ListView的意见给予相关指标用于在屏幕上或一些当前可见的项目是正确的由适配器进行的附近计算。

另外一个方法是操纵实际的数据收集,包括一个标志,它指出一个特殊的条件,然后在适配器getView()方法,询问当前项目的标志和修改特定视图

1

您应该通过扩展BaseAdapter类而不是使用ArrayAdapter来使用自定义的List Adapter。在BaseAdapter中int方法getView()中,可以根据项目的位置指定特定项目的颜色。

祝你好运!