コード例 #1
0
ファイル: GroupDetailAdapter.java プロジェクト: Muwl/Tonglou
  @Override
  public View getView(final int position, View convertView, ViewGroup viewGroup) {
    ViewHolder holder = null;
    ViewHolder1 holder1 = null;
    int type = getItemViewType(position);
    if (type == type0) {
      convertView = null;
      if (convertView == null || !convertView.getTag().getClass().equals(ViewHolder.class)) {
        convertView = View.inflate(context, R.layout.groupdetail_head, null);
        holder = new ViewHolder();
        holder.icon = (CircleImageView) convertView.findViewById(R.id.groupdetail_icon);
        holder.name = (TextView) convertView.findViewById(R.id.groupdetail_name);
        holder.address = (TextView) convertView.findViewById(R.id.groupdetail_address);
        holder.num = (TextView) convertView.findViewById(R.id.groupdetail_num);
        holder.time = (TextView) convertView.findViewById(R.id.groupdetail_time);
        holder.content = (TextView) convertView.findViewById(R.id.groupdetail_content);
        holder.tip = (TextView) convertView.findViewById(R.id.groupdetail_tip);
        holder.join = (TextView) convertView.findViewById(R.id.groupdetail_join);
        holder.menu_lin = (LinearLayout) convertView.findViewById(R.id.groupdetail_menu_lin);
        holder.replay = (ImageView) convertView.findViewById(R.id.groupdetail_replay);
        holder.parimage = (ImageView) convertView.findViewById(R.id.groupdetail_parimage);
        holder.gridView = (MyGridView) convertView.findViewById(R.id.groupdetail_grid);
        convertView.setTag(holder);
      } else {
        holder = (ViewHolder) convertView.getTag();
      }
    } else if (type == type1) {
      if (convertView == null || !convertView.getTag().getClass().equals(ViewHolder1.class)) {
        convertView = View.inflate(context, R.layout.groupdetail_item, null);
        holder1 = new ViewHolder1();
        holder1.icon = (CircleImageView) convertView.findViewById(R.id.groupdetail_item_icon);
        holder1.name = (TextView) convertView.findViewById(R.id.groupdetail_item_name);
        holder1.content = (TextView) convertView.findViewById(R.id.groupdetail_item_content);
        holder1.time = (TextView) convertView.findViewById(R.id.groupdetail_item_time);
        holder1.reply = (TextView) convertView.findViewById(R.id.groupdetail_item_reply);
        holder1.del = (TextView) convertView.findViewById(R.id.groupdetail_item_del);
        convertView.setTag(holder1);
      } else {
        holder1 = (ViewHolder1) convertView.getTag();
      }
    }
    if (type == type0) {
      if (!entity.publishUserIcon.equals(holder.icon.getTag())) {
        holder.icon.setTag(entity.publishUserIcon);
        bitmapUtils.display(holder.icon, entity.publishUserIcon);
      }
      //            bitmapUtils.display(holder.icon, entity.publishUserIcon);
      holder.name.setText(entity.publishUserNickname);
      holder.address.setText(entity.locationName);
      holder.tip.setText(entity.topic);
      holder.num.setText("参团人数:" + entity.groupNum + "/" + entity.planPeopleNum);
      holder.time.setText("截止日期:" + entity.endDate);
      holder.content.setText(entity.detail);
      holder.join.setEnabled(true);
      holder.join.setClickable(true);
      if ("0".equals(entity.isInGroup)) {
        holder.join.setText("已参加进群聊");
      } else {
        holder.join.setText("参加");
        try {
          if ("0".equals(entity.applyState)
              && Integer.valueOf(entity.planPeopleNum) <= Integer.valueOf(entity.groupNum)) {
            holder.join.setText("活动关闭");
            holder.join.setEnabled(false);
            holder.join.setClickable(false);
          }
          if (!"0".equals(entity.state)) {
            holder.join.setText("活动关闭");
            holder.join.setEnabled(false);
            holder.join.setClickable(false);
          }
        } catch (Exception e) {

        }
      }

      holder.join.setOnClickListener(
          new View.OnClickListener() {
            @Override
            public void onClick(View v) {
              if (ToosUtils.CheckComInfo(context)) {
                handler.sendEmptyMessage(1112);
              }
            }
          });
      holder.icon.setOnClickListener(
          new View.OnClickListener() {
            @Override
            public void onClick(View v) {
              Intent intent = new Intent(context, ConstactActivity.class);
              intent.putExtra("id", entity.publishUserId);
              intent.putExtra("name", entity.publishUserNickname);
              context.startActivity(intent);
            }
          });
      List<User> userList = entity.praiseUser;
      if (userList == null) {
        userList = new ArrayList<>();
      }
      GroupDetailGridViewAdapter gridAdapter = new GroupDetailGridViewAdapter(context, userList);
      holder.gridView.setAdapter(gridAdapter);

      if (userList.size() == 0) {
        holder.parimage.setVisibility(View.INVISIBLE);
      } else {
        holder.parimage.setVisibility(View.VISIBLE);
      }

      holder.replay.setTag("pppp" + position);
      rep = holder.replay;

      holder.replay.setOnClickListener(
          new View.OnClickListener() {
            @Override
            public void onClick(View v) {
              if (ToosUtils.CheckComInfo(context)) {
                if (menuWindow == null || menuWindow.isShowing() == false) {
                  menu_press();
                } else {
                  menuWindow.dismiss();
                }
              }
            }
          });

    } else if (type == type1) {
      if (!entities.get(position - 1).publishUserIcon.equals(holder1.icon.getTag())) {
        holder1.icon.setTag(entities.get(position - 1).publishUserIcon);
        bitmapUtils.display(holder1.icon, entities.get(position - 1).publishUserIcon);
      }

      if (ShareDataTool.getUserId(context).equals(entities.get(position - 1).publishUserId)) {
        entities.get(position - 1).publishUserNickname = "我";
      }

      if (ShareDataTool.getUserId(context).equals(entities.get(position - 1).targetUserId)) {
        entities.get(position - 1).targetUserNickname = "我";
      }

      if (ToosUtils.isStringEmpty(entities.get(position - 1).parentId)
          || entities.get(position - 1).parentId.equals(entity.id)) {
        holder1.name.setText(entities.get(position - 1).publishUserNickname);
      } else {
        holder1.name.setText(
            Html.fromHtml(
                entities.get(position - 1).publishUserNickname
                    + "\u2000<font color=\"#0076FF\">回复</font>\u2000"
                    + entities.get(position - 1).targetUserNickname));
      }
      //            if (ToosUtils.isStringEmpty(entities.get(position-1).targetUserId)){
      //                holder1.name.setText(entities.get(position - 1).publishUserNickname);
      //            }else{
      //                holder1.name.setText(entities.get(position -
      // 1).publishUserNickname+"\u2000回复\u2000"+entities.get(position-1).targetUserNickname);
      //            }
      if (ShareDataTool.getUserId(context).equals(entities.get(position - 1).publishUserId)) {
        holder1.del.setVisibility(View.VISIBLE);
        holder1.del.setOnClickListener(
            new View.OnClickListener() {
              @Override
              public void onClick(View v) {
                if (ToosUtils.CheckComInfo(context)) {
                  String temp = "是否删除该评论?";
                  if (ToosUtils.isStringEmpty(entities.get(position - 1).targetUserId)) {
                    temp = "是否删除该评论?";
                  } else {
                    temp = "是否删除该回复?";
                  }

                  CustomeDialog dialog =
                      new CustomeDialog(context, handler, temp, position - 1, -2, null);
                  //                        Message message=new Message();
                  //                        message.what=1009;
                  //                        message.arg1=(position-1);
                  //                        handler.sendMessage(message);
                }
              }
            });
      } else {
        holder1.del.setVisibility(View.GONE);
      }

      holder1.icon.setOnClickListener(
          new View.OnClickListener() {
            @Override
            public void onClick(View v) {
              Intent intent = new Intent(context, ConstactActivity.class);
              intent.putExtra("id", entities.get(position - 1).publishUserId);
              intent.putExtra("name", entities.get(position - 1).publishUserNickname);
              context.startActivity(intent);
            }
          });

      holder1.content.setText(entities.get(position - 1).content);
      holder1.time.setText(entities.get(position - 1).createDate);
      holder1.reply.setOnClickListener(
          new View.OnClickListener() {
            @Override
            public void onClick(View v) {
              if (ToosUtils.CheckComInfo(context)) {
                Message message = new Message();
                message.what = 1005;
                message.arg1 = (position - 1);
                handler.sendMessage(message);
              }
            }
          });
    }
    return convertView;
  }