В статье рассказывается как создать приложения сложения двух чисел в Android Studio для Android.
Внимание! Тут более новая статья с другим подходом к обработке клика кнопки с использованием OnClickListener.
Статья из цикла «Сложение двух чисел». Для меня минимальное освоение любой системы программирования начинается с возможности создания такой программы. Если можно написать приложение, в которой пользователь может ввести два числа, считать их, провести с ними какие-то действия, а потом вывести результат, то, значит, базовое владение имеется. И много задач именно из области программирования, алгоритмики можно будет решать, зная, как в конкретной системе программирования запрограммировать такую программу.
Содержание
Приготовления
В статье Установка связки Android Studio и Eclipse узнаете, как всё установить и настроить.
В статье Создание простейшего приложения в Android Studio сможете узнать как создать приложение уровня Hello World.
Создание проекта
Если будут проблемы с отображением окна (как на рисунке), то перещелкните на другой API для отображения, а потом верните обратно:
Размещение компонентов
Выделим и удалим текстовое поле.
Перетащим текстовое поле.
Растянем его.
Обратим внимание на то, что поле имеет имя editText.
Перетащим еще одно текстовое поле:
Перетащим кнопку.
Перетащим поле с текстом для вывода.
Разметка будет такой:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 |
<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:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity"> <EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/editText" android:layout_alignParentTop="true" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:layout_alignParentRight="true" android:layout_alignParentEnd="true" /> <EditText android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/editText2" android:layout_below="@+id/editText" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:layout_alignRight="@+id/editText" android:layout_alignEnd="@+id/editText" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="New Button" android:id="@+id/button" android:layout_below="@+id/editText2" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:layout_alignRight="@+id/editText2" android:layout_alignEnd="@+id/editText2" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="New Text" android:id="@+id/textView" android:layout_below="@+id/button" android:layout_alignParentLeft="true" android:layout_alignParentStart="true" android:layout_alignParentRight="true" android:layout_alignParentEnd="true" /> </RelativeLayout> |
Соединение компонентов с java кодом
В кнопке пропишите такую строчку:
1 |
android:onClick="ClickButton" |
Сохраните Ctrl + S.
Перейдите в окно редактирования кода главной активности.
Добавьте в класс три переменных, отвечающих за два текстовых поля ввода и одно текстовое поля вывода:
1 2 3 |
private EditText editText; private EditText editText2; private TextView textView; |
Нажмите Alt + Enter несколько раз для подключения необходимых библиотек. При этом курсор должен быть на строке с красными буквами. При этом переменные перестанут быть красными.
В методе onCreate соедините созданные переменные с теми полями, что объявлены в разметке.
1 2 3 |
editText = (EditText) findViewById(R.id.editText); editText2 = (EditText) findViewById(R.id.editText2); textView = (TextView) findViewById(R.id.textView); |
Создадим метод, который прописали в разметке для нажимания на кнопку:
1 2 3 4 |
public void ClickButton(View v) { } |
Нажмите Alt + Enter для подключения необходимых библиотек. При этом курсор должен быть на строке с красными буквами.
Сохраните Ctrl + S.
Пропишем реализацию метода:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
//Объявим числовые переменные double a,b,c; //Считаем с editText и editText2 текстовые значения String S1 = editText.getText().toString(); String S2 = editText2.getText().toString(); //Преобразуем текстовые переменные в числовые значения a = Double.parseDouble(S1); b = Double.parseDouble(S2); //Проведем с числовыми переменными нужные действия c = a+b; //Преобразуем ответ в число String S = Double.toString(c); //Выведем текст в textView textView.setText(S); |
Сохраните Ctrl + S.
Содержимое MainActivity.java:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
package com.example.harrix.addition2numbers; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.widget.EditText; import android.widget.TextView; public class MainActivity extends ActionBarActivity { private EditText editText; private EditText editText2; private TextView textView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); editText = (EditText) findViewById(R.id.editText); editText2 = (EditText) findViewById(R.id.editText2); textView = (TextView) findViewById(R.id.textView); } @Override public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_main, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle action bar item clicks here. The action bar will // automatically handle clicks on the Home/Up button, so long // as you specify a parent activity in AndroidManifest.xml. int id = item.getItemId(); //noinspection SimplifiableIfStatement if (id == R.id.action_settings) { return true; } return super.onOptionsItemSelected(item); } public void ClickButton(View v) { //Объявим числовые переменные double a,b,c; //Считаем с editText и editText2 текстовые значения String S1 = editText.getText().toString(); String S2 = editText2.getText().toString(); //Преобразуем текстовые переменные в числовые значения a = Double.parseDouble(S1); b = Double.parseDouble(S2); //Проведем с числовыми переменными нужные действия c = a+b; //Преобразуем ответ в число String S = Double.toString(c); //Выведем текст в textView textView.setText(S); } } |
Запустите приложение.
Вот и всё)
Небольшое дополнение. Код, который вы прописали в методе ClickButton, можно сделать более коротким.
1 2 3 4 |
double a = Double.parseDouble(editText.getText().toString()); double b = Double.parseDouble(editText2.getText().toString()); double c = a+b; textView.setText(Double.toString(c)); |
Пока всё)