用颜色的android简单列表视图

时间:2012-04-10 19:59:58

标签: android android-layout

我在一个活动中工作以显示字符串列表,就像这样:

    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));

使用此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>

这很好用,但我需要在列表的行中添加一些颜色。 谁可以帮助我?

非常感谢!

1 个答案:

答案 0 :(得分:1)

您可以通过扩展SimpleAdapter并覆盖getView()方法并将背景颜色应用于当前视图行,为ListView的每一行的背景添加不同的颜色。之后使用自定义适配器作为列表。

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;
}}

下一步是使用customList适配器作为列表。喜欢这个

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