我有一个ListView和posibility来选择一个元素(单选)。
如何在选择某个项目时为ListView的所有元素(可能至少可见)设置背景颜色?
adapter = new ArrayAdapter(activity, simple_list_item_single_choice, orderlines) { @Override public View getView(final int position, View convertView, final ViewGroup parent) { ... convertView.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { convertView.setBackgroundColor(BLACK); // so here currently selected element is set to BLACK, but also other elements have to be set to WHITE } }); return convertView; } }
由于
答案 0 :(得分:0)
你可以做到
parent.setBackgroundColor(BLACK);
this.notifyDataSetChanged();
设置列表视图背景。
答案 1 :(得分:0)
我没有太多的代码,因为我现在不在我的工作站,但我想你可以通过onItemClick将所选项目的背景设置为黑色,就像你已经建议的那样。凉。
要在选择特定视图时更改其他(未选定)视图的颜色,我猜你可以调用你的Adapter的getCount()并遍历该列表,调用你的ListView的getChildAt(i) 。这将返回一个可以调用setBackgroundColor(Color)的视图。希望这有帮助
答案 2 :(得分:0)
我会使用Drawable选择器。
检查此链接是否有一个很好的例子: http://www.charlesharley.com/2012/programming/custom-drawable-states-in-android/
基本上你创建了XML drawable,它包含一个映射(系统自动使用)到你想要在某些点击事件发生时显示的内容。
您可以将背景drawable分配给任何视图,因此您可以在XML中为适配器或Java代码执行此操作。在你的情况下可能是这样的:
convertView.setBackgroundDrawable(R.drawable.MySelector);
答案 3 :(得分:0)
parent.setBackgroundColor(while_color); v.setBackgroundColor(black_color)