无法在 CustomAdapter 中获取 HashMap 位置

can't able to get HashMap position in CustomAdapter

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

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();

你有:

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

以上行将不起作用,因为 list.get(position) 结果是 Hashmap 对象而不是字符串对象。如果你想要示例显示 MESSAGE_BODY 你必须像这样使用它

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

你也不需要充气

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

两次`

list.get(position)

Return position 中的对象 HashMap,不是 String