Всего несколько строк, чтобы объяснить причину, по которой this
не работает:
i = new Intent(this, MainActivity.class)
Цель создана внутри другого класса, здесь анонимный внутренний класс OnClickListener
. Таким образом, this
не ссылается на экземпляр вашего действия (или контекста), как предполагалось, а на экземпляр вашего анонимного внутреннего класса OnClickListener
.
Итак, вы должны указать правильный контекст своего класса.
i = new Intent(YourClassName.this, MainActivity.class)
Не существует предопределенного стиля, поэтому вы должны следовать стандартам проекта / команды, в которой вы работаете.
Хорошая идея состоит в том, чтобы группировать их логически, таким образом, чтобы ваш код был нацелен легче понять.
Тем не менее, этот вопрос в основном основан на мнениях и оффтопике здесь, поэтому я голосую, чтобы закрыть его.
Если он не включен в документ PEP, нет стандартного сообщества.
В моем последнем проекте мы организуем их в порядке инкрементного развития: поместите методы ведения домашнего хозяйства (например, __init__
), затем те, которые полезны для отладки (например, __repr__
), затем основные компараторы (__lt__
, __contains__
), поддержка итерации, продолжающиеся в порядке специфичности типов.