2016-03-22 33 views
0

我为HashMap制作了自定义适配器,问题是我无法使用HashMap设置CustomAdapter的TextView。 倒数第二行得到语法错误获取HashMap的位置。 请引导我如何解决语法错误并设置CustomAdapter。无法在CustomAdapter中获取HashMap位置

CustomAdapter.java

public class CustomAdapter extends ArrayAdapter<HashMap<String, Object>> { 

     private SparseBooleanArray mSelectedItemsIds; 
     private LayoutInflater inflater; 
     private Context mContext; 
     private List<HashMap<String, Object>> list; 
     Blocklist blocklist; 

     public CustomAdapter (Context context, int resourceId, List<HashMap<String, Object>> list) { 
      super(context, resourceId, list); 
      mSelectedItemsIds = new SparseBooleanArray(); 
      mContext = context; 
      inflater = LayoutInflater.from(mContext); 
      this.list = list; 
     } 

     private static class ViewHolder { 
      TextView itemName; 
     } 

     public View getView(int position, View view, ViewGroup parent) { 
      final ViewHolder holder; 
      if (view == null) { 
       holder = new ViewHolder(); 
       view = inflater.inflate(R.layout.custom_textview, null); 
       view = inflater.inflate(R.layout.custom_textview, null); 
       holder.itemName = (TextView) view.findViewById(R.id.custom_tv); 
       view.setTag(holder); 
      } else { 
       holder = (ViewHolder) view.getTag(); 
      } 

      holder.itemName.setText(list.get(position)); 
      return view; 
     } 

Blocklist.java

HashMap<String,Object> hm = new HashMap<String,Object>(); 
       hm.put(ID, cursor.getLong(0)); 
       hm.put(ORIGINATING_ADDRESS, cursor.getString(1)); 
       hm.put(MESSAGE_BODY, cursor.getString(2)); 
       arrayList.add(hm); 
       cursor.moveToNext(); 
+0

添加错误日志。 –

+0

为什么2倍在getView中膨胀。 –

+0

错误地输入@jaydroider –

回答

2

您有:

holder.itemName.setText(list.get(position)); 

上面的行不会为list.get(position)导致HashMap对象的工作,而不是一个字符串对象。如果你想往返为例,说明了新的讯息,您必须使用这样

holder.itemName.setText((String)list.get(position).get(MESSAGE_BODY)); 

你也不必夸大

view = inflater.inflate(R.layout.custom_textview, null); 

twice`

+0

感谢它的工作 –

0
list.get(position) 

返回对象HashMapposition,而不是String