【问题标题】:Android-Get Background color of listview(item) programmaticallyAndroid-以编程方式获取列表视图(项目)的背景颜色
【发布时间】:2016-05-20 18:33:14
【问题描述】:

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

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

代码:

@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();
            }
        });

【问题讨论】:

  • 您想要单行的背景还是整个列表的背景?
  • @amalBit 对于整个列表视图
  • 使用 settag 和 gettag
  • @amalBit 我需要整个列表视图,如果可能的话,你也可以告诉我单个列表项的值。 tnq
  • Listview 只是一天结束时的另一个视图。 sp 你可以试试这个stackoverflow.com/a/8089242/2219600

标签: android listview background-color


【解决方案1】:

如果您想从 ListView 获取视图背景颜色

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

获取后台尝试

Drawable listDrawableBackground = listView.getBackground();

如果背景是一种颜色,获取颜色,你可以试试

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

要获得实际颜色,请使用

int colorId = listViewColor.getColor();

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

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

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

tag = "#ccc",你可以使用

String colorCode = (String)listView.getTag();

现在您有了 colorCode,您可以在程序的任何地方重复使用它。

【讨论】:

  • 我没有得到颜色使用这个你能告诉我使用按钮来获取整个列表行
猜你喜欢
  • 2019-05-29
  • 1970-01-01
  • 1970-01-01
  • 2014-07-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多