2013-08-26 83 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()中,可以根據項目的位置指定特定項目的顏色。

祝你好運!