0

--已编辑--

我有的:

2 不同颜色的ListView

我正在使用CustomListViewAdapter

我想做的事:

1-在第一个 ListView 的项目单击时,此 View 的颜色将设置为与第二个相同的颜色,并且 TextView 的文本颜色将为白色而不是黑色。

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

问题:

一切都很顺利,直到我注意到当我单击一个项目并滚动时,其他视图也在改变背景颜色和文本颜色。

在 CustomListAdapter 的 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;
        }
    });

在此先感谢您的帮助...

4

2 回答 2

1

您需要getViewlistviews. 发生这种情况的原因是视图在listview. 如果您想更好地控制您的视图,您最好创建自己的适配器和覆盖getView()方法:

@Override
    public View getView(int position, View convertView, ViewGroup parent) {
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);
            }

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

    vi.setBackgroundColor(Color.parseColor("#000000")); // setup default color here
// for your TextView's as well, if you change them on click
    }
于 2013-08-19T20:13:10.450 回答
1

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

我也推荐任何阅读这篇文章有困难的人:

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

于 2013-08-24T22:00:22.067 回答