Android - 以编程方式获取listview(项目)的背景颜色

时间:2016-02-10 12:00:00

标签: android listview background-color

首先,我为listview项目创建一个背景颜色,如下所示, 我有两个这样的自定义列表视图:

enter image description here

我设置颜色的自定义列表:

代码:

@Override
    public View getView(final int position, View convertView, ViewGroup parent) {
        Holder holder = new Holder();
        final View rowView;
        rowView = inflater.inflate(R.layout.table_one, null);
        holder.tv = (TextView) rowView.findViewById(R.id.textView1);
        holder.tv.setText(result[position]);
        rowView.setBackgroundColor(Color.WHITE);
        rowView.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                if (position == 0) {
                    rowView.setBackgroundColor(Color.BLUE);
                    MainActivity.counter = Color.BLUE;
                } else if (position == 1) {
                    rowView.setBackgroundColor(Color.YELLOW);
                    MainActivity.counter = Color.YELLOW;
                } else if (position == 2) {
                    rowView.setBackgroundColor(Color.GREEN);
                    MainActivity.counter = Color.GREEN;
                } else if (position == 3) {
                    rowView.setBackgroundColor(Color.MAGENTA);
                    MainActivity.counter = Color.MAGENTA;
                }
            }
        });
        return rowView;
    }

当用户点击列表视图时,它会更改为指定颜色,如上图所示

单击按钮时,我需要将列表视图的颜色保存在列表中。

我怎么能这样做,需要帮助请

在我的MainActivity中,我有按钮,

check = (Button) findViewById(R.id.check);
 check.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                Toast.makeText(getApplicationContext(), "Checked", Toast.LENGTH_SHORT).show();
            }
        });

1 个答案:

答案 0 :(得分:0)

如果要从ListView

获取视图背景颜色
Type2

获取后台尝试

ListView listView = (ListView) findViewById(R.id.my_list);

如果背景是颜色,要获得颜色,可以尝试

Drawable listDrawableBackground = listView.getBackground();

获取实际颜色,使用

ColorDrawable listViewColor = (ColorDrawable) listView.getBackground();

您可以将此colorId与现有颜色进行比较,如下所示:

int colorId = listViewColor.getColor();

另一种方法是将标签添加到ListView,标签将是颜色,比如说

tag =“#ccc”,您可以使用

if (colorID == R.color.blue) {
   Log("color is blue");
}

现在您拥有了colorCode,您可以在程序中的任何位置重复使用它。