Welcome to the Treehouse Community

Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.

Looking to learn something new?

Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.

Start your free trial

Android Android Lists and Adapters (2015) Custom ListViews getView() and the ViewHolder Pattern

Why was the ViewHolder created as a nested class instead of its own class?

I am trying to understand, why was the ViewHolder created as a nested class instead of its own class?

In the future, when would I use nested class vs a non nested class?

1 Answer

Enrique Munguía
Enrique Munguía
14,311 Points

In this case you can choose both options, however, the ViewHolder is declared as a nested class because its use is limited to the enclosing class, you are not going to use it outside, so it does not add much value create another file and declare it separately.

When you need a class a it will be used by used at different places you can create it as non nested, when its use is narrowed to one file or class you can create it as nested.