如何在OnItemClick事件的ListView的所有元素上设置背景颜色?

我有一个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;
    }
}

谢谢


我没有太多的代码给你,因为我现在不在我的工作站,但是我认为你可以按照你的建议,通过你的onItemClick设置所选项目的背景为黑色。 凉。

当选择一个特定的视图时,为了改变其他(未选定的)视图的颜色,我猜你可以调用你的Adapter的getCount()并遍历该列表,调用你的ListView的getChildAt(i)。 这将返回一个视图,您可以调用setBackgroundColor(Color)。 希望这可以帮助


你可以做

parent.setBackgroundColor(BLACK);
this.notifyDataSetChanged();

设置你的列表视图背景。


我会用一个Drawable选择器。

检查这个链接是一个很好的例子:http://www.charlesharley.com/2012/programming/custom-drawable-states-in-android/

基本上你可以创建一个XML drawable,其中包含一个映射(系统自动使用),以便在某些点击事件发生时显示的内容。

您可以将背景可绘制分配给任何视图,因此您可以在XML中为适配器或Java代码执行此操作。 你的情况可能是这样的:

convertView.setBackgroundDrawable(R.drawable.MySelector);
链接地址: http://www.djcxy.com/p/50601.html

上一篇: how to set background color for all elements of ListView on OnItemClick event?

下一篇: Gridview scrolling issue using Android Volley Network library