10 Способов избежать ошибок при программировании вашего приложения Android с Java

10 Способов избежать ошибок при программировании вашего Android-приложения с Java-манекенами

Каждый совершает ошибки. Это факт жизни. Однако, если вы прислушаетесь к советам здесь, это не обязательно должно быть фактом вашего программирования на Java.

Помещение заглавных букв там, где они принадлежат

Java - это язык с учетом регистра, поэтому вам действительно нужно иметь в виду ваши p s и q s - вместе со всеми другими буквами алфавита. Вот несколько концепций, которые следует учитывать при создании Java-программ:

  • Все ключевые слова Java полностью строчные. Например, в инструкции Java if слово , если не может быть If или IF.
  • Когда вы используете имена из интерфейса прикладного программирования Android (API), случай с именами должен соответствовать тому, что появляется в API.
  • Имена, которые вы составляете сами, должны быть капитализированы одинаково на всей программе. Если вы объявите переменную myAccount , вы не можете ссылаться на нее как MyAccount , myaccount или Myaccount . Если вы заглаживаете имя переменной двумя разными способами, Java думает, что вы имеете в виду две совершенно разные переменные.

Выключение оператора switch

Если вы не выходите из оператора , вы получаете провал. Например, если значение roll составляет 7 , следующий код печатает все три слова - win , continue и > lose : switch (roll) {

case 7:

textView. SetText ( "победа");

случай 10:

TextView. SetText ( "продолжить");

случай 12:

textView. SetText ( "потерять");

}

Сравнение значений с двойным знаком равенства

Когда вы сравниваете два значения, вы используете знак двойного равенства. Строка

if (inputNumber == randomNumber)

верна, но строка

if (inputNumber = randomNumber)

неверна.

Добавление слушателей для обработки событий

Вы хотите знать, когда пользователь нажимает на виджет, когда заканчивается анимация или когда что-то происходит, поэтому вы создаете слушателей:

открытый класс MainActivity extends Activity

реализует OnClickListener, AnimationListener

{ ...

public void onClick (просмотр) {

...

}

public void onAnimationEnd (анимация анимации) {

...

} < Когда вы создаете слушателей, вы должны помнить, чтобы установить слушателей:

Виджет ImageView = новый ImageView (это);

виджет.

setOnClickListener

(это); ...

AlphaAnimation animation = new AlphaAnimation (0. 0F, 1.FF);

анимация.

setAnimationListener

(это); ... Если вы забыли вызов

setOnClickListener

, ничего не происходит, когда вы нажимаете на виджет.Повторное нажатие на виджет второй раз не помогает. Определение необходимых конструкторов Когда вы определяете конструктор с параметрами, как в

public Температура (двойной номер)

Java больше не создает для вас конструктор без параметров без параметров. Другими словами, вы больше не можете звонить

Temperature roomTemp = new Temperature ();

, если вы явно не указали свой собственный безпараметрический конструктор

Температура

. Фиксация нестатических ссылок Если вы попытаетесь скомпилировать следующий код, вы получите сообщение об ошибке:

класс WillNotWork {

String greeting = "Hello";

static void show () {

textView. SetText (приветствие);

}

}

Появляется сообщение об ошибке, поскольку метод

show

является статическим, но приветствие не является статическим. Пребывание в пределах массива Когда вы объявляете массив с десятью компонентами, компоненты имеют индексы от 0 до 9. Иными словами, если вы объявляете

int guests [] = new int [10];

вы можете обратиться к компонентам массива

гостей

, написав гостей [0] , гостей [1] и так далее, вплоть до гости [9] . Вы не можете написать гостей [10] , потому что массив guest не имеет компонента с индексом 10. Предваряющие нулевые указатели A

NullPointerException

возникает, когда вы вызываете метод выражения, не имеющего «законного» значения. Вот пример: открытый класс MainActivity расширяет AppCompatActivity { TextView textView;

@Override

protected void onCreate (Bundle savedInstanceState) {

супер. OnCreate (savedInstanceState);

setContentView (R. Layout. Activity_main);

// Вы забыли строку findViewById.

}

public void onButtonClick (View view) {

textView. SetText ( "Hello");

}

}

В Java переменная ссылочного типа, которая не указывает ни на что, имеет значение

null

. Поэтому в этом примере значение переменной textView равно null . Вы не можете вызвать метод setText

в значении null . В этом случае вы не можете вызвать какой-либо метод в значении null . Когда Java пытается выполнить textView. setText («Hello») , приложение аварийно завершает работу. Пользователь видит, что приложение остановило сообщение . Если вы тестируете приложение с помощью Android Studio, вы увидите NullPointerException на панели Logcat. Чтобы избежать такого рода бедствия, дважды подумайте о любом вызове метода в вашем коде. Если выражение перед точкой может быть null

, добавьте код обработки исключений в вашу программу: public void onButtonClick (представление вида) { try {

textView. SetText ( "Hello");

} catch (NullPointerException e) {

Тост. makeText (это, «Приложение восстановилось после ошибки.»,

Toast. LENGTH_LONG). показать();

}

}

Использование разрешений

Для некоторых приложений требуются явные разрешения. Например, некоторые приложения разговаривают с серверами Twitter через Интернет. Это не работает, если вы не добавили элемент

в приложение Android AndroidManifest.xml

file: Если вы забыли добавить элемент в свой AndroidManifest. xml

, приложение не может связываться с серверами Twitter. Приложение выходит из строя, не вызывая полезного сообщения об ошибке. Очень жаль! Действие не найдено Если вы создаете второе действие для своего приложения, вы должны добавить новый элемент в приложение Android AndroidManifest. XML

файл. Элемент может быть таким же простым, как

, но в большинстве случаев элемент немного сложнее. Если вы не добавите этот элемент , Android не сможет найти класс MySecondActivity

, даже если

MySecondAcitivity. Файл java находится в каталоге проекта приложения. Ваше приложение вылетает с ActivityNotFoundException . И это имеет значение.