簡體   English   中英

Listview項目顏色更改

[英]Listview item color change

抱歉再次詢問類似的問題。 對於我來說,答案很復雜,因為我三周前開始使用android,而且我不知道為什么我無法回復以及過去的代碼有問題。

我有一個3列(時間表)的列表視圖。 第一個是公共汽車離開車站的時間,第二個是公共汽車線路的描述,第三個是公共汽車離開車站的時間與系統時間之間的差。

所以我想更改通過的項目(總線)的顏色。 我知道listview有一個setBackgroundColor方法,但是它僅適用於所有項目。

這是我的代碼:

        mylist = new ArrayList<HashMap<String, String>>();
       mylistglava = new ArrayList<HashMap<String, String>>();

/********** Display the headings ************/
map1 = new HashMap<String, String>();
map1.put("Polazak", "Polazak:");
map1.put("Opis", "Napomena:");
map1.put("Kreceza", "Krece za:");
mylistglava.add(map1);

try {
    adapterglava = new SimpleAdapter(this, mylistglava,
            R.layout.vrijemebus, new String[] { "Polazak", "Opis",
                    "Kreceza" }, new int[] { R.id.Polazak, R.id.Opis,
                    R.id.Kreceza });
    list_glava.setAdapter(adapterglava);
} catch (Exception e) {
    e.printStackTrace();

}

/********************************************************/

/********** Display the contents ************/

for (int i = 0; i < bus.vrijeme.length; i++) {
    map2 = new HashMap<String, String>();
    map2.put("Polazak", bus.vrijeme[i]);
    map2.put("Krece za", kreceza[i]);
    if (i < bus.opis.length)
        map2.put("Opis", bus.opis[i]);
    else
        map2.put("Opis", " ");
    mylist.add(map2);
}

try {
    adapter = new SimpleAdapter(this, mylist, R.layout.vrijemebus,
            new String[] { "Polazak", "Opis", "Krece za" }, new int[] {
                    R.id.Polazak, R.id.Opis, R.id.Kreceza });
  list.setAdapter(adapter);
} catch (Exception e) {
    e.printStackTrace();

}

}

因此,任何人都可以實現Adapter getview()並描述我如何在之前的代碼中進行設置。 也許我會明白的。 再次感謝,Matija

您應該使用GridView而不是ListView 在這種情況下,您將可以自定義所需的任何項目。

覆蓋適配器的getView

adapter = new SimpleAdapter(this, mylist, R.layout.vrijemebus,
        new String[] { "Polazak", "Opis", "Krece za" }, new int[] {
                R.id.Polazak, R.id.Opis, R.id.Kreceza })
       {
           @Override
           public View getView (int position, View convertView, ViewGroup parent)
           {
               View v = super.getView(position, convertView, parent);
               TextView tv = (TextView) v.findViewById(R.id.Polazak);
               // based on condition. set color to  the required textview
               String value = tv.getText().toString();
               if(value.equals("passed"))
               {
               tv.setTextColor(Color.RED);
               }else
               {
               tv.setTextColor(Color.BLACK);
               }

               return v;
           }
       };

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM