onItemClickListener在其他自定义ListView行上实现

时间:2013-08-19 20:10:03

标签: android database listview view android-arrayadapter

- 编辑 -

我有什么:

2个不同颜色的ListViews

我正在使用 CustomListViewAdapter

我想做什么:

1 - 在第一个ListView的项目点击中,此视图的颜色将设置为与第二个颜色相同的颜色,TextView的文本颜色将为白色而不是黑色。

2 - 当点击另一个项目时,第一个项目将按原样返回。

问题:

一切都很顺利,直到我发现当我点击一个项目并滚动时,其他视图也会改变背景颜色和文字颜色..

在CustomListAdapater中的getView()中:

代码:

vi = inflater.inflate(R.layout.itemshow, null);

vi.setOnClickListener(new OnClickListener(){

        @Override
        public void onClick(View v) {

            Log.i("myList","isClicked");
            if(PreviousView!=null){
                PreviousView.setBackgroundColor(Color.WHITE);
                holder.nametext.setTextColor(Color.BLACK);
                holder.quantitytext.setTextColor(Color.BLACK);
                holder.pricetext.setTextColor(Color.BLACK);
            }

            v.setBackgroundColor(Color.parseColor("#330000"));
            holder.nametext.setTextColor(Color.WHITE);
            holder.quantitytext.setTextColor(Color.WHITE);
            holder.pricetext.setTextColor(Color.WHITE);
            PreviousView = v;
        }
    });

提前感谢您的帮助......

2 个答案:

答案 0 :(得分:1)

您需要在getView的{​​{1}}方法中为视图设置默认颜色。发生这种情况的原因是因为视图在listviews中被回收。如果您希望更好地控制视图,最好创建自己的适配器并覆盖listview方法:

getView()

答案 1 :(得分:1)

我终于解决了我的问题..如果有人有兴趣我会发布我的代码:)我不会发布它现在因为没有很多意见..

另外,我推荐任何阅读本文时遇到问题的人:

http://android.amberfog.com/?p=296