Пример #1
0
  @Override
  public View getView(int position, View convertView, ViewGroup parent) {

    //        TextView textView = new TextView(context);
    //        textView.setText(label[position + pageItemCount * index]);
    //        textView.setTextColor(R.color.black);
    //        textView.setGravity(Gravity.CENTER);
    //        textView.setBackgroundResource(R.drawable.label_bg);
    //
    //        return textView;

    GridItem gridItem;
    if (convertView == null) {
      gridItem = new GridItem();
      convertView = LayoutInflater.from(context).inflate(R.layout.label_grid_item, null);
      gridItem.labelText = (TextView) convertView.findViewById(R.id.grid_text_view);
      gridItem.checkedImage = (ImageView) convertView.findViewById(R.id.checked_image);
      convertView.setTag(gridItem);
    } else {
      gridItem = (GridItem) convertView.getTag();
    }
    if (gridItem == null) {
      return convertView;
    }
    // 对该viewPager的存储checkitem的位置遍历一遍,如果与当前刷新的view相同,则进行处理
    if (checkedPositionList != null) {
      if (checkedPositionList.size() == 0) {
        gridItem.checkedImage.setVisibility(View.GONE);
        isCheck[position] = false;
      } else if (checkedPositionList.size() != 0) {
        for (int j = 0; j < checkedPositionList.size(); j++) {
          if (j == 0 && checkedPositionList.get(j) == position) {
            isCheck[position] = false;
          }
          if (checkedPositionList.get(j) == position && isCheck[position] == false) {
            // 对list每一项遍历,属性为点上了,而且轮到该位置时候,图片才可见
            gridItem.checkedImage.setVisibility(View.VISIBLE);
            isCheck[position] = true;
            break;
          } else {
            gridItem.checkedImage.setVisibility(View.GONE);
            isCheck[position] = false;
          }
        }
      }
    }
    gridItem.labelText.setText(label[position + pageItemCount * index]);

    return convertView;
  }
 /**
  * Add item to GridView that must contain all "rooms" or "devices" with : the name (taken from the
  * dialog inputText) & the icon according to the type.
  *
  * @param name gridItem name (room name).
  * @param type gridItem type (room type).
  * @return the gridItem to Be Added on the grid
  */
 public GridItem addRoom(String name, GridItem.ItemType type) {
   GridItem toBeAdded = null;
   if (type == GridItem.ItemType.Light) {
     toBeAdded = GridItem.Light(name, type);
   }
   /*else toBeAdded = GridItem.Garage(name, type);*/
   return toBeAdded;
 }
  @Override
  public View getView(int position, View convertView, ViewGroup parent) {
    Holder holder;
    View view = convertView;

    if (view == null) {
      view = LayoutInflater.from(context).inflate(R.layout.grid_item, parent, false);
      holder = new Holder();
      holder.title = (TextView) view.findViewById(R.id.grid_item_title);
      holder.cover = (ImageView) view.findViewById(R.id.grid_item_cover);
      view.setTag(holder);
    } else {
      holder = (Holder) view.getTag();
    }

    GridItem item = list.get(position);
    holder.title.setText(item.getTitle());
    holder.cover.setImageBitmap(BrowserUnit.file2Bitmap(context, item.getFilename()));
    ViewUnit.setElevation(
        view, context.getResources().getDimensionPixelSize(R.dimen.elevation_1dp));

    return view;
  }