1

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

    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>

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

真的感谢!

4

1 回答 1

1

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

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); 
于 2012-04-12T14:04:40.920 回答