/**
     * アプリ1つ分を表現する {@link View} を返します。
     *
     * @param position アイテムのインデックス。 0 ベース。
     * @param convertView これまで使用されていた {@link View} オブジェクト。 {@code null} の可能性あり。 可能なかぎり再利用すること。
     * @param parent 対象とする {@link View} の親。
     * @return {@link View} オブジェクト。
     */
    public View getView(int position, View convertView, ViewGroup parent) {
      final View v =
          (convertView == null) ? inflater_.inflate(R.layout.grid_row, null) : convertView;
      final GridRowData rowData =
          (v.getTag() == null) ? createRowData(v) : (GridRowData) v.getTag();

      final AppInfo info = getItem(position);
      rowData.getTextView().setText(info.getLabel());
      rowData.getImageView().setImageDrawable(info.getIcon());

      v.setTag(rowData);
      return v;
    }
  public void showMenuDialog(final AppInfo appInfo, final View view) {
    new AlertDialog.Builder(mContext)
        .setIcon(appInfo.getAppIcon())
        .setTitle(appInfo.getLabel())
        .setItems(
            R.array.zy_game_menu,
            new DialogInterface.OnClickListener() {
              @Override
              public void onClick(DialogInterface dialog, int which) {
                switch (which) {
                  case 0:
                    // send
                    FileTransferUtil fileSendUtil = new FileTransferUtil(getActivity());
                    fileSendUtil.sendFile(
                        appInfo.getInstallPath(),
                        new TransportCallback() {

                          @Override
                          public void onTransportSuccess() {
                            ViewHolder viewHolder = (ViewHolder) view.getTag();
                            showTransportAnimation(viewHolder.iconView);
                          }

                          @Override
                          public void onTransportFail() {}
                        });
                    break;
                  case 1:
                    // app info
                    mAppManager.showInfoDialog(appInfo);
                    break;

                  default:
                    break;
                }
              }
            })
        .create()
        .show();
  }
 @Override
 public int compare(AppInfo object1, AppInfo object2) {
   return sCollator.compare(object1.getLabel(), object2.getLabel());
 }