Android: Конвертор «38 папуг»

  1. підготовка
  2. Шкода
  3. висновок
  4. додаткове читання
  5. Реклама

Стаття проплачена кішками - всесвітньо відомими виробниками кошенят.

Якщо стаття вам сподобалася, то можете підтримати проект .

Пора знову написати яке-небудь корисне додаток (нагадую, що до цього ми написали гарну програму Лічильник ворон ). На цей раз напишемо конвертер, який дозволить нам дізнатися довжину Довгокота не тільки в метрах, а й в папуг. Якщо ви не знаєте, хто такий Довгокіт, то вам пряма дорога на мій блог Субкота-5 . Сподіваюся, що таке субкота, ви знаєте?

Вивчивши цю техніку, ви зможете написати власні конвертери. Наприклад, ви зможете конвертувати долари в тугрики, фути в метри, градуси Цельсія в градуси за Фаренгейтом, свинець в золото, ну і так далі ...

підготовка

Створюємо новий проект Converter і додаємо рядкові ресурси в файл res / values / strings.xml.

&lt;? Xml version = "1.0&quot; encoding = "utf-8"?> <Resources> <string name = "action_settings"> Settings </ string> <string name = "app_name"> 38 папуг </ string> <string name = "radiobutton_meters"> У метрах </ string> <string name = "radiobutton_parrots"> У папуг </ string> <string name = "buttonConvert_text"> Конвертувати </ string> <color name = "activity_color"> # 3399cc </ color> </ resources>

Відкриваємо файл activity_main.xml в папці res / layout / і налаштовуємо зовнішній вигляд екрану програми. Видаляємо дурну напис Hello World! . Далі з панелі інструментів з розділу Text Fields перетягуємо елемент Plain Text. Потім в розділі Containers знаходимо елемент RadioGroup і також перетягуємо на екран. Тепер з розділу Widgets двічі переносимо елемент RadioButton і розміщуємо їх усередині RadioGroup. Завершальний штрих - додаємо кнопку.

Ми підготували каркас додатка. Тепер зробимо невеликий тюнинг. Призначимо необхідні властивості доданим елементам. Властивості можна міняти через окрему панель Properties.

Давайте зробимо так, щоб при введенні тексту в текстовому полі за замовчуванням з'являлася цифрова клавіатура. Так зручніше буде користувачеві вводити довжину кота. Виділяємо компонент EditText, знаходимо у нього властивість InputType, розкриваємо його і ставимо прапорці у властивостей numberSigned і numberDecimal.

Далі дамо текст перемикачів RadioButton. Ми заздалегідь вже заготовили рядкові ресурси для перемикачів. Тому нам потрібно просто призначити потрібні ресурси в властивості Text: radiobutton_meters і radiobutton_parrots. Переконайтеся, що у першого перемикача у властивості Checked встановлено значення true.

У кнопки для властивості Text ми використовуємо строковий ресурс buttonConvert_text, а для властивості onClick - onClick.

Щоб програма не виглядало стандартним, дамо властивості background у кореневого елемента значення activity_color (колір морської хвилі).

Щоб додаток виглядало професійніше, змінимо також ідентифікатори за замовчуванням на більш зрозумілі: editText, radioButtonMeter, radioButtonParrot, buttonConverter.

Побудьте дизайнером, придумайте свої варіанти. У мене вийшло наступне.

Код розмітки виглядає наступним чином:

<RelativeLayout xmlns: android = "http://schemas.android.com/apk/res/android" xmlns: tools = "http://schemas.android.com/tools" android: layout_width = "match_parent" android: layout_height = "match_parent" android: background = "@ color / activity_color" android: paddingBottom = "@ dimen / activity_vertical_margin" android: paddingLeft = "@ dimen / activity_horizontal_margin" android: paddingRight = "@ dimen / activity_horizontal_margin" android: paddingTop = "@ dimen / activity_vertical_margin "tools: context =". MainActivity "> <editText android: id =" @ + id / editText "android: layout_width =" match_parent "android: layout_height =" wrap_content "android: layout_alignParentTop =" true "android: layout_centerHorizontal = "true" android: inputType = "numberDecimal | numberSigned" /> <RadioGroup android: id = "@ + id / radioGroup" android: layout_width = "match_parent" android: layout_height = "wrap_content" android: layout_alignParentStart = "true" android : layout_alignParentLeft = "true" android: layout_below = "@ + id / editText"> <RadioButton android: id = "@ + id / radioButtonMete r "android: layout_width =" wrap_content "android: layout_height =" wrap_content "android: checked =" true "android: text =" @ string / radiobutton_meters "/> <RadioButton android: id =" @ + id / radioButtonParrot "android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: text = "@ string / radiobutton_parrots" /> </ RadioGroup> <Button android: id = "@ + id / buttonConverter" android: layout_width = "wrap_content" android: layout_height = "wrap_content" android: layout_below = "@ + id / radioGroup" android: layout_centerHorizontal = "true" android: layout_marginTop = "28dp" android: onClick = "onClick" android: text = "@ string / buttonConvert_text" /> < / RelativeLayout>

Шкода

Ну, давайте писати код, что-ли. Відкриваємо файл активності MainActivity.java. Нам знадобляться два методи для конвертації величин і обробник клацання кнопки. При порожньому значенні текстового поля будемо виводити Toast-повідомлення. Почнемо з двох методів.

Методи прості. Вказуємо кількість папуг і ділимо на магічне число 7.6 - отримуємо метри. І навпаки, вказуємо число метрів і отримаємо кількість папуг. Звідки взялося число 7.6 ви дізнаєтеся пізніше.

При натисканні кнопки отримуємо текст з текстового поля і в залежності від того, який перемикач активний, застосовуємо потрібний метод конвертації. Повний код.

package ru.alexanderklimov.converter; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.EditText; import android.widget.RadioButton; import android.widget.Toast; public class MainActivity extends AppCompatActivity {@Override protected void onCreate (Bundle savedInstanceState) {super.onCreate (savedInstanceState); setContentView (R.layout.activity_main); } // Конвертуємо в метри private float convertParrotToMeter (float parrot) {return (float) (parrot / 7.6); } // Конвертуємо в папуги private float convertMeterToParrot (float meter) {return (float) (meter * 7.6); } Public void onClick (View view) {RadioButton meterRadioButton = (RadioButton) findViewById (R.id.radioButtonMeter); EditText inputEditText = (EditText) findViewById (R.id.editText); if (inputEditText.getText (). length () == 0) {Toast.makeText (getApplicationContext (), "Введіть довжину кота", Toast.LENGTH_LONG) .show (); return; } Float inputValue = Float.parseFloat (inputEditText.getText (). ToString ()); if (meterRadioButton.isChecked ()) {inputEditText.setText (String .valueOf (convertParrotToMeter (inputValue))); } Else {inputEditText.setText (String .valueOf (convertMeterToParrot (inputValue))); }}}

Запускаємо проект і милуємося новим додатком.

Припустимо, довжина кота 10 метрів. Вводимо це значення при обраному варіанті "в метрах", перемикається на "в папуг" і натискаємо на кнопку. Отримуємо результат. У програмі немає захисту від дурня і вам слід самому подбати, щоб при введенні неприпустимих символів програма не закінчується з помилкою, а попереджала користувача.

висновок

Щоб бути впевненим, що ми застосовували наукові методи при написанні програми, звернемося до Google з пошуковим запитом метри в папуг

Таким чином, вам залишилося зловити Довгокота і виміряти його. Результати необхідно показати коту і, тоді вас чекає сюрприз! Кот від подиву скаже знамениту фразу: А в папуг я набагато довше!

додаткове читання

Обговорення статті на форумі.

Реклама

mercedes s оренда актуальна інформація замовити білий мерседес на весілля luxury-trans.com.ua; футзалкі в наявності mercurial футзалкі оригінальні бутси купити в Україні

Сподіваюся, що таке субкота, ви знаєте?
Lt;?
Quot; encoding = "utf-8"?