public View getView(final int position, View view, ViewGroup arg2) {
    ViewHolder viewHolder = null;
    if (view == null) {
      viewHolder = new ViewHolder();
      view = LayoutInflater.from(mContext).inflate(R.layout.association_fragment_one_item, null);
      viewHolder.tvIcon = (ImageView) view.findViewById(R.id.association_fragment_one_icon);
      viewHolder.tvTitle = (TextView) view.findViewById(R.id.association_fragment_one_title);
      viewHolder.tvLetter = (TextView) view.findViewById(R.id.association_fragment_one_catalog);
      view.setTag(viewHolder);
    } else {
      viewHolder = (ViewHolder) view.getTag();
    }
    final Association mDemo = list.get(position);
    if (position == 0) {
      // 设置社团首字母
      viewHolder.tvLetter.setVisibility(View.VISIBLE);
      viewHolder.tvLetter.setText(mDemo.getKey());
    } else {
      String lastCatalog = list.get(position - 1).getKey();
      if (mDemo.getKey().equals(lastCatalog)) {
        viewHolder.tvLetter.setVisibility(View.GONE);
      } else {
        viewHolder.tvLetter.setVisibility(View.VISIBLE);
        viewHolder.tvLetter.setText(mDemo.getKey());
      }
    }

    // 设置社团标题
    viewHolder.tvTitle.setText(this.list.get(position).getName());
    String pic = this.list.get(position).getIcon();

    // 设置LOGO - 文件名 - 资源ID

    // 方式1:反射
    // 通过反射机制,把icon文件名,转化成资源id,设置到对应的社团imageView中
    //
    // try {
    // field = draw.getDeclaredField(pic);
    // resId = field.getInt(pic);
    // } catch (Exception e) {
    // e.printStackTrace();
    // resId = R.drawable.association_logo_0;
    // }

    // 方式2:getIdentifier
    int resId = mContext.getResources().getIdentifier(pic, "drawable", "pyp.navigation.main");
    // 找不到资源就设置为默认logo
    if (resId == 0) resId = R.drawable.association_logo_0;
    // 设置为社团Logo图像资源
    viewHolder.tvIcon.setImageResource(resId);

    return view;
  }
 public int getPositionForSection(int section) {
   Association mDemo;
   String l;
   if (section == '!') {
     return 0;
   } else {
     for (int i = 0; i < getCount(); i++) {
       mDemo = (Association) list.get(i);
       l = mDemo.getKey();
       char firstChar = l.toUpperCase().charAt(0);
       if (firstChar == section) {
         return i + 1;
       }
     }
   }
   mDemo = null;
   l = null;
   return -1;
 }