Это больше вопрос Java, чем Android.
Внутренние классы больше для того, чтобы сделать ваш код читабельным и не влияют на производительность , пока вы используете статические внутренние классы . Статические внутренние классы извлекаются компилятором и компилируются как отдельные классы (Class $ InnerClass).
Так что, если использование внутренних классов полезно для вас с точки зрения организации кода, вы можете смело идти вперед и использовать их. Хотя я настоятельно рекомендую использовать статические внутренние классы.
Редактировать
В этом контексте достаточно статических внутренних классов с адаптером, которому не нужен доступ ни к одной из переменных Activity.