首先,我为listview项目创建一个背景颜色,如下所示, 我有两个这样的自定义列表视图:
我设置颜色的自定义列表:
代码:
@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();
}
});
答案 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,您可以在程序中的任何位置重复使用它。