@Override public void onPrepareSubMenu(SubMenu subMenu) { // Clear since the order of items may change. subMenu.clear(); ActivityChooserModel dataModel = ActivityChooserModel.get(mContext, mHistoryFileName); PackageManager packageManager = mContext.getPackageManager(); // Populate the sub-menu with a sub set of the activities. final int count = dataModel.getActivityCount(); for (int i = 0; i < count; i++) { ResolveInfo activity = dataModel.getActivity(i); subMenu .add(0, i, i, activity.loadLabel(packageManager)) .setIcon(activity.loadIcon(packageManager)) .setOnMenuItemClickListener(mCallbacks); } }