Resolving an Implicit Intent
Next add a RecyclerView.Adapter implementation.
Listing 24.6 RecyclerView.Adapter implementation
(NerdLauncherFragment.java)
public class NerdLauncherFragment extends Fragment {
...
private class ActivityHolder extends RecyclerView.ViewHolder {
...
}
private class ActivityAdapter extends RecyclerView.Adapter
private final List
public ActivityAdapter(List
mActivities = activities;
}
@Override
public ActivityHolder onCreateViewHolder(ViewGroup parent, int viewType) {
LayoutInflater layoutInflater = LayoutInflater.from(getActivity());
View view = layoutInflater
.inflate(android.R.layout.simple_list_item_1, parent, false);
return new ActivityHolder(view);
}
@Override
public void onBindViewHolder(ActivityHolder holder, int position) {
ResolveInfo resolveInfo = mActivities.get(position);
holder.bindActivity(resolveInfo);
}
@Override
public int getItemCount() {
return mActivities.size();
}
}
}
Last, but not least, update setupAdapter() to create an instance of ActivityAdapter and set it as the
RecyclerView’s adapter.
Listing 24.7 Setting RecyclerView’s adapter (NerdLauncherFragment.java)
public class NerdLauncherFragment extends Fragment {
...
private void setupAdapter() {
...
Log.i(TAG, "Found " + activities.size() + " activities.");
mRecyclerView.setAdapter(new ActivityAdapter(activities));
}
...
}