我对自定义BaseAdapter有一种奇怪的行为。
首先,我有三种颜色:
蓝色,深蓝色和黄色:
在我的自定义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)