/** * アプリ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()); }