Итак, в прошлый раз мы создали первое приложение для андроид, используя AndroidStudio, наше приложение получилось проще некуда, в поле для ввода пишем текст, при нажатии на кнопку BUTTON это текст попадал в текстовое поле, меняя тем самым надпись.

Проще только форма с кнопкой закрыть приложение, кстати, а как изменить текст на кнопке спросите вы? Очень просто, аж двумя способами, не считая программного…

Первый способ изменить текст на кнопке - hardcore

Откроем файл main.xml, и в свойствах элемента Button - android:text="Button" в скобках напишем "Нажми меня!", перейдем в Design вид и надпись на кнопке поменяется. Хотя это считается хардкором и вообще дурным тоном.

Второй способ изменить текст на кнопке - strings.xml

Слева в инспекторе проекта по путь res/values/ откроем файл strings.xml (строки), добавим новую строку либо скопировав предыдущую, либо набрав вручную либо нажав комбинацию клавиш ctrl+D, продублировав верхнюю строку. Поменяем свойство name на любое на английском, и главное имя должно быть уникальное, иначе получите предупреждение об ошибке, я написал "my_button".

<string name="my_button">Нажми меня!</string>

Между скобками тот же текст "Нажми меня!", сохранили и закрыли. Теперь в main.xml свойство текст у кнопки в скобках напишем "@string/my_button", система сама вам поможет при вводе текста, и предложит в раскрывающемся списке содержимое файла strings.xml.

Перейдем снова с дизайнерский вид и увидим что текст изменился. Далее у поля ввода текста EditText оставим значение text пустым, что бы надпись Name не появлялась при запуске приложения.

Новая кнопка - "Очистить"

Добавим перетаскиванием на форму еще одну кнопку, в файле strings.xml добавим еще одну текстовую строчку и именем "my_button2" и значением "Очистить".

<string name="my_button2">Очистить</string>

Создадим переменную b2 типа Button и найдем ее по id через findviewById(R.id.button2), в main.xml button2 это id новой кнопки.

Button b2 = (Button)findViewById(R.id.button2);

Как написать обработчик нажатия на кнопку

Напишем обработчик нажатия на кнопку b2, при этом переменная ed связанная с текстовым полем и txt наша надпись получат через функцию setText() текст "" (пустые скобки).

b2.setOnClickListener(new View.OnClickListener(){
        public void onClick(View arg0){
        ed.setText("");          
        txt.setText("");
        }
        });

Проверим, запустив приложение, введем текст, нажмем на кнопку "Нажми меня!" затем на кнопку "Очистить", все работает.

Теперь добавим ниже второй кнопки еще одну, она нужна будет для закрытия приложения, снова в strings.xml добавим строку, нажав ctrl+D, с именем "my_button3"и текстом "Выход",  сохраним и закроем.

<string name="my_button3">Выход</string>

В файле main.xml для id button3 в свойстве text пропишем "@string/my_button3".

Снова создадим переменную типа button b3, свяжем ее через id используя findViewById(R.id.button3), и напишем еще один обработчик нажатия на кнопку с одной функцией finish().

Button b3 = (Button)findViewById(R.id.button3);
...
...
...
 b3.setOnClickListener(new View.OnClickListener(){
            public void onClick(View arg0){
                finish();

            }
        });

Запуск приложения в эмуляторе

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

Android приложение за 5 минут. Часть 2

Запустим приложение и проверим, как все работает. Текст добавляется, затем очищается, и форма закрывается, как и было задумано.

Полный текст main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
	xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    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="com.maxfad.myapplication1.MainActivity">

    <TextView
        android:id="@+id/text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="" />

    <Button
        android:id="@+id/button"
        android:text="@string/my_button"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="139dp"
        android:layout_centerHorizontal="true"
         />

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:inputType="textPersonName"
        android:text=""
        android:ems="10"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="40dp"
        android:id="@+id/edit" />

    <Button
        android:id="@+id/button2"
        android:text="@string/my_button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/button"
        android:layout_alignLeft="@+id/button"
        android:layout_alignStart="@+id/button"
        android:layout_marginTop="11dp"
        android:layout_alignRight="@+id/button"
        android:layout_alignEnd="@+id/button" />

    <Button
        android:id="@+id/button3"
        android:text="@string/my_button3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/button2"
        android:layout_alignLeft="@+id/button2"
        android:layout_alignStart="@+id/button2"
        android:layout_marginTop="19dp"

        android:layout_alignRight="@+id/button2"
        android:layout_alignEnd="@+id/button2" />
</RelativeLayout>

Полный текст MainActivity.java

package com.maxfad.myapplication1;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        Button b = (Button)findViewById(R.id.button);
        Button b2 = (Button)findViewById(R.id.button2);
        Button b3 = (Button)findViewById(R.id.button3);
        final EditText ed = (EditText)findViewById(R.id.edit);
        final TextView txt = (TextView)findViewById(R.id.text);

        b.setOnClickListener(new View.OnClickListener(){
            public void onClick(View arg0) {
                txt.setText(ed.getText());
            }
        });

        b2.setOnClickListener(new View.OnClickListener(){
        public void onClick(View arg0){
          ed.setText("");
          txt.setText("");
        }
        });

        b3.setOnClickListener(new View.OnClickListener(){
            public void onClick(View arg0){
                finish();

            }
        });
    }
}

Полный текст strings.xml

<resources>
    <string name="app_name">My Application1</string>
    <string name="my_button">Нажми меня!</string>
    <string name="my_button2">Очистить</string>
    <string name="my_button3">Выход</string>
</resources>

Как создать андроид приложение за 5 минут (Продолжение):

Рекомендуем смотреть видео в полноэкранном режиме, в настойках качества выбирайте 1080 HD, не забывайте подписываться на канал в YouTube, там Вы найдете много интересного видео, которое выходит достаточно часто. Приятного просмотра!

 С уважением, авторы сайта Компьютерапия




Понравилась статья? Поделитесь ею с друзьями и напишите отзыв в комментариях!

Новые статьи

We use cookies on our website. Some of them are essential for the operation of the site, while others help us to improve this site and the user experience (tracking cookies). You can decide for yourself whether you want to allow cookies or not. Please note that if you reject them, you may not be able to use all the functionalities of the site.

Ok