迭代ArrayAdapter的getView()方法中的循环<customwrapperclassobject> </customwrapperclassobject>

时间:2013-08-16 07:15:17

标签: android android-listview arraylist android-arrayadapter sortedmap

我有一个数据包装类,我设置&amp;得到一些值,添加到这里我有一些动态值来自服务器,我已经在这个包装类中添加了一个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; 
        }
    }

0 个答案:

没有答案
相关问题