An instance of a class, in Java, can access private fields of its own inner class, as the last line of code does, holder.textView
, in the following listing:
public class PokedexAdapter extends RecyclerView.Adapter<PokedexAdapter.PokedexViewHolder> {
public static class PokedexViewHolder extends RecyclerView.ViewHolder {
private LinearLayout containerView;
private TextView textView;
PokedexViewHolder(View view) {
super(view);
containerView = view.findViewById(R.id.pokedex_row);
textView = view.findViewById(R.id.pokedex_row_text_view);
}
}
private List<Pokemon> pokemon = Arrays.asList(
new Pokemon("Bulbasaur", 1),
new Pokemon("Ivysaur", 2),
new Pokemon("Venusaur", 3)
);
@Override
public void onBindViewHolder(@NonNull PokedexViewHolder holder, int position) {
Pokemon current = pokemon.get(position);
holder.textView.setText(current.getName());
}
}