我有一个数据包装类,我设置&得到一些值,添加到这里我有一些动态值来自服务器,我已经在这个包装类中添加了一个SortedMap来设置当我从服务器接收它而不知道那是什么数据,然后我将这个CustomWrapperClassObject添加到一个ArrayList ,得在列表视图中显示ArrayList数据。
适配器扩展ArrayAdapter
现在,当我尝试迭代ArrayList.get(position)时,它返回一个customObject。所有其他值设置正常,但当我得到一个SortedMap并尝试迭代其键。 SortedMap值在列表行中混合。与listview中的视图1一样,包含第二个视图的值,并且我向下滚动并向上添加所有视图中的值。
感谢任何帮助。
class CustomWrapperClassObject{
public String a;
public String b;
SortedMap<String,String> dynamicValues = new TreeMap<String,String>();
public String getA(){
}
public void setA(String a){
}
====same way for b=====
public SortedMap<String,String> getDynamicValues(){
}
public void setDynamicValues(SortedMap<String,String> values){
}
}
ArrayAdapter的getView方法&lt;&gt; ================================================== =======
public View getView(final int position, View convertView, ViewGroup parent)
{
View v = convertView;
ViewHolder holder = null;
if (v == null)
{
holder=new ViewHolder();
v = vi.inflate(R.layout.row_item, null);
holder.a=(TextView) v.findViewById(R.id.tv_a);
holder.b=(TextView)v.findViewById(R.id.tv_b);
holder.dynamicValue=(TextView)v.findViewById(R.id.tv_dynamic);
v.setTag(holder);
}
else
holder=(ViewHolder)v.getTag();
CustomWrapperClassObject customWrapperClassObject= ArrayList.get(position);
holder.a.setText(customWrapperClassObject.getA());
holder.b.setText(customWrapperClassObject.getB());
if(customWrapperClassObject.getDynamicValues()!= null && customWrapperClassObject.getDynamicValues().size() > 0)
{
SortedMap<String,String> mDataObject = customWrapperClassObject.getDynamicValues();
Set<String> keySet = mDataObject.keySet();
String[] keys = keySet.toArray(new String[keySet.size()]);
for(int i = 0 ; i < keys.length ; i++)
{
holder.dynamicValue.append(keys[i]+":"+mDataObject.get(keys[i]+"\n");
}
}
return v;
}
}