2010-11-18 19 views
1

Bir proje için bir oyun lobisi oluşturmaya çalışıyorum ve oyunun durum metninin farklı bir renk olmasını istiyorum: bir "[IN PROGRESS]" oyunu için kırmızı ve bir oyun için yeşil. "[Bekleniyor x oyuncular]. ListView, verilerle doldurulacak ve her bir ListView öğesinde bir oyun kimliği bulunacak ve hemen oyunun durumunun sağında olacaktır.Bir ListView içindeki bir TextView'un metin rengini dinamik olarak değiştirin.

Şu anda ListView'imi oluşturmak için esasen Hello ListView kodunu kullanıyorum.

ArrayList<HashMap<String, String>> gameList = new ArrayList<HashMap<String, String>>(); 
private ListView gamesListView; 
private SimpleAdapter gameItems. 

(Yapıcıda) (onCreate olarak())

gamesListView = (ListView) findViewById(R.id.listViewGames); 
gameItems = new SimpleAdapter(this, gameList, R.layout.gamelistitem, 
    new String[] { "line1, "line2}, 
    new int[] { R.id.tvGameID, R.id.tvGameStatus }); 
gamesListView.setAdapter(gameItems); 

Sonra, bizim veritabanından verileri elde bir yenileme düğmesi vardır. Oyunun kimliği için diğeri oyunun durumu için iki Dizge alacak. Oyun durumu 0 ise, hala oyuncular için bekliyor. Oyun durumu 1 ise, oyun başladı. Yani, GameList eklemek için bir gameItem oluşturun: sıkıştım nerede

HashMap<String, String> gameItem = new HashMap<String, String>(); 
gameItem.put("line1", gameIDString); 
gameItem.put("line2", renderGameStatus(gameStatusString)); 
gameList.add(gameItem); 
gameItems.notifyDataSetChanged(); 

private String renderGameStatus(String statusString) { 
    if (statusString.equals("0")) { 
     return "[Waiting for players]"; 
    } else { 
     return "[IN PROGRESS]"; 
    } 
} 

budur. GameItem'i oluşturduğumda veya bunu GameList'e eklediğimde belirli TextView’i nasıl değiştirebileceğimi anlamıyorum. TextView'ın özelliklerine erişmenin bir yolu yok. Görüntünün metninin nasıl ayarlandığını görüyorum (dizelerin "line1" ve "line2" ye eşleştirilmesi yoluyla, ancak özelliklerin herhangi birini nasıl değiştireceğimi bilmiyorum.

Yardımlarınız için teşekkürler!

? böylece çalışırsanız

cevap

1

olduğunu yardımcı olur

TextView t = (TextView) findViewById(R.layout.yourTextView); 
t.setTextColor(color); 
t.setBackgroundColor(color); 

umut satırları ve ListView'ünüz için özel bir Bağdaştırıcı kullanarak. Here's iyi bir tane.

3

XML dosyasında TextView'un oluşturmak mı: Bu soruya doğru cevap özel ListView üzerinde pek çok öğreticiler birini takip etmek

+0

Maalesef Hayır ... sadece ListView'deki tüm TextView'ların rengini değiştirmez miydi? ListView içinde her bir belirli TextView rengini değiştirmek için arıyorum. – Rockmaninoff

+0

hmm şimdi anlıyorum .. Zaten denedim emin değilim ama oluşturulan Listeler ve şeyler tam kontrol sahibi olmak için BaseAdapter uygulama hakkında bir şey hatırlıyorum. Şuna bir bakmalısın. İyi şanslar – dds

İlgili konular