【问题标题】:Android - ListFragment SimpleAdapter change colorAndroid - ListFragment SimpleAdapter 改变颜色
【发布时间】:2018-08-31 02:42:26
【问题描述】:

有没有一种简单的方法可以改变每隔一行的颜色

我试过了,但不幸的是它不起作用。

  new SimpleAdapter(Activity.this,
                                    listElements,
                                    R.layout.list,
                                    new String[]{"dt", CONTENT, TIMESTAMP},
                                    new int[]{R.drawable.dt, R.id.content, R.id.timestamp}){
                                public View getView(int position, View v, ViewGroup parent) {
                                    if (position%2 == 0) {
                                        v.setBackgroundColor(920000);
                                    } else {
                                    }
                                    return v;
                                }
                            }
                    );

【问题讨论】:

    标签: android colors android-listfragment simpleadapter


    【解决方案1】:

    您问题中的代码非常接近正确;覆盖getView() 的想法是正确的,但您应该将其更改为如下所示:

    public View getView(int position, View v, ViewGroup parent) {
        v = super.getView(position, v, parent);
        if (position%2 == 0) {
            v.setBackgroundColor(0xff920000);
        } else {
            v.setBackgroundColor(/* default color */);
        }
        return v;
    }
    

    我所做的更改是:

    • 包含super.getView() 调用以获取默认行为以供进一步修改
    • 0x 开头您的颜色值 int 文字,以便将其解释为十六进制数字
    • 为 Alpha 通道添加 ff
    • 还要在 else 的情况下设置颜色以避免视图回收问题

    【讨论】:

      【解决方案2】:

      是的,像这个答案一样创建一个实现 getView 的自定义适配器。

      How can I make my ArrayAdapter follow the ViewHolder pattern?

      您可以实现此代码。

      if(position % 2 == 0){ //even number
          //make a specific color
      }
      else if(position % 2 == 1){ //odd number
          //make a specific color
      }
      

      【讨论】:

      • 这是我不想做的?没有别的办法吗?
      • 不。无论如何,您都必须创建一个自定义适配器。
      猜你喜欢
      • 2011-10-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多