Android Programming The Big Nerd Ranch Guide by Bill Phillips, Chris Stewart, Kristin Marsicano (z-lib.org)

(gtxtreme123) #1
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 mActivities;


public ActivityAdapter(List activities) {
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));
}
...
}

Free download pdf