ListView和自定义BaseAdapter的奇怪行为

时间:2014-05-13 10:23:53

标签: android listview baseadapter

我对自定义BaseAdapter有一种奇怪的行为。

首先,我有三种颜色:

蓝色,深蓝色和黄色:enter image description here enter image description here enter image description here

在我的自定义BaseAdapter上,我膨胀的行是总是深蓝色,所以当我想要更改它时,我只需要在需要时更改它。

我想在位置0,1更改它,当文本是:

            if (position == 0 || position == 1) {
                row.setBackgroundColor(main.getResources().getColor(R.color.azzurro)); // blue (not dark)
            } else if (lista.get(position).getName().equalsIgnoreCase("something")) {
                row.setBackgroundColor(main.getResources().getColor(R.color.gialloBarra)); // yellow
                row.findViewById(R.id.imageView2).setVisibility(View.VISIBLE);
                testo.setTextColor(Color.parseColor("#000000"));
            } 
奇怪的行为是当我点击某个项目并且我做某事时,当我回去时,我的所有项目除了带有文字“某事”的项目都变成蓝色(不是深蓝色,甚至是膨胀深蓝色):

我也有Overriden:

@Override
    public int getViewTypeCount() {
        return 3;
    }

我做得不好?

提前感谢。


添加

我没有使用我的convertView

    @Override
    public View getView(int position, View convertView, ViewGroup parent){
        View row = null;
        LayoutInflater mInflater = (LayoutInflater)getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        row = mInflater.inflate(R.layout.itembluemarino, parent, false);

修改!!!

这也发生在整个FragmentActivity,我的意思是,推出几个视图(使用R.layout.itembluemarino的列表视图)得到另一种颜色...(我的颜色是R.color.azzurro和R.color .blueMarino)

0 个答案:

没有答案