2012-04-10 13 views
1

ich in einer Tätigkeit arbeiten, um eine Liste von Zeichenketten zu zeigen, einfach so:android einfache Listenansicht mit Farben

protected void onResume() { 
    // TODO Auto-generated method stub 
    super.onResume(); 

    String[] lKeys = new String[mKey.size()]; 
    int i = 0; 
    if (lKeys != null) { 
     for (Iterator<String> ite = mKey.iterator(); ite.hasNext();) { 
      String element = ite.next(); 
      if (element.contains("Data")) { 
       lKeys[i++] = element; 
      } else { 
       lKeys[i++] = element + ": " + mValue.get(element); 
      }    
     } 
    } 
    // 
    this.setTitle(mTitle); 
    setListAdapter(new ArrayAdapter<String>(this,R.layout.popupactivity,lKeys)); 

Whit diese xml

<?xml version="1.0" encoding="utf-8"?> 
<TextView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/tvResults" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:textColor="#000000" 
    android:background="#ffffff" 
    android:layout_marginLeft="5dp" 
    android:textSize="12sp" 
    android:padding="5dp" > 
</TextView> 

das funktioniert gut, aber ich brauche zu setzen einige Farben zu den Zeilen der Liste. wer kann mir helfen?

Wirklich Dank!

Antwort

1

Sie können dem Hintergrund jeder Zeile eines ListViews verschiedene Farben hinzufügen, indem Sie SimpleAdapter erweitern und die Methode getView() überschreiben und die Hintergrundfarbe auf die aktuelle Ansichtszeile anwenden. Verwenden Sie den benutzerdefinierten Adapter anschließend als Ihre Liste.

public class CustomList extends SimpleAdapter { 
private int[] colors = new int[] { 0x30ADD8E6, 0x30800080 }; 

public CustomList(Context context, List<HashMap<String, String>> items, int resource, String[] from, int[] to) { 
    super(context, items, resource, from, to); 
} 

@Override 
public View getView(int position, View convertView, ViewGroup parent) { 
    View view = super.getView(position, convertView, parent); 
    int colorPos = position % colors.length; 
    view.setBackgroundColor(colors[colorPos]); 
    return view; 
}} 

Im nächsten Schritt verwenden Sie den CustomList-Adapter als Ihre Liste. So,

myList = new CustomList (this,R.layout.lay,R.layout.grid_item,from,target); 
+0

Dank Priebe, mache ich den Job mit einem TableLayout in ScrollView – AuTi