Java android добавляем кнопку

Java android добавляем кнопку

Одним из часто используемых элементов являются кнопки, которые представлены классом android.widget.Button . Ключевой особенностью кнопок является возможность взаимодействия с пользователем через нажатия.

Некоторые ключевые атрибуты, которые можно задать у кнопок:

  • text : задает текст на кнопке
  • textColor : задает цвет текста на кнопке
  • background : задает фоновый цвет кнопки
  • textAllCaps : при значении true устанавливает текст в верхнем регистре. По умолчанию как раз и применяется значение true
  • onClick : задает обработчик нажатия кнопки

Итак, изменим код в activity_main.xml следующим образом:

При помощью атрибута android:onClick можно задать метод в коде java, который будет обрабатывать нажатия кнопки. Так, в вышеприведенном примере это метод sendMessage . Теперь перейдем к коду MainActivity и пропишем в нем такой метод:

package com.example.viewapp; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.view.View; 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.activity_main); >// Обработка нажатия кнопки public void sendMessage(View view) < TextView textView = findViewById(R.id.textView); EditText editText = findViewById(R.id.editText); textView.setText("Добро пожаловать, " + editText.getText()); >>

При создании метода обработки нажатия следует учитывать следующие моменты:

  • Метод должен объявляться с модификатором public
  • Должен возвращать значение void
  • В качестве параметра принимать объект View . Этот объект View и представляет собой нажатую кнопку

В данном случае после нажатия на кнопку в TextView выводится текст из EditText.

onClick и Button нажатие кнопки в Java и Android

Аналогичный пример полностью в коде MainActivity:

package com.example.viewapp; import androidx.appcompat.app.AppCompatActivity; import androidx.constraintlayout.widget.ConstraintLayout; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; public class MainActivity extends AppCompatActivity < EditText editText; TextView textView; @Override protected void onCreate(Bundle savedInstanceState) < super.onCreate(savedInstanceState); //setContentView(R.layout.activity_main); ConstraintLayout constraintLayout = new ConstraintLayout(this); textView = new TextView(this); textView.setId(View.generateViewId()); ConstraintLayout.LayoutParams textViewLayout = new ConstraintLayout.LayoutParams( ConstraintLayout.LayoutParams.MATCH_CONSTRAINT, ConstraintLayout.LayoutParams.WRAP_CONTENT ); textViewLayout.topToTop = ConstraintLayout.LayoutParams.PARENT_ID; textViewLayout.leftToLeft = ConstraintLayout.LayoutParams.PARENT_ID; textViewLayout.rightToRight = ConstraintLayout.LayoutParams.PARENT_ID; textView.setLayoutParams(textViewLayout); constraintLayout.addView(textView); editText = new EditText(this); editText.setId(View.generateViewId()); editText.setHint("Введите имя"); ConstraintLayout.LayoutParams editTextLayout = new ConstraintLayout.LayoutParams( ConstraintLayout.LayoutParams.MATCH_CONSTRAINT, ConstraintLayout.LayoutParams.WRAP_CONTENT ); editTextLayout.topToBottom = textView.getId(); editTextLayout.leftToLeft = ConstraintLayout.LayoutParams.PARENT_ID; editTextLayout.rightToRight = ConstraintLayout.LayoutParams.PARENT_ID; editText.setLayoutParams(editTextLayout); constraintLayout.addView(editText); Button button = new Button(this); button.setText("Ввод"); ConstraintLayout.LayoutParams buttonLayout = new ConstraintLayout.LayoutParams( ConstraintLayout.LayoutParams.WRAP_CONTENT, ConstraintLayout.LayoutParams.WRAP_CONTENT ); buttonLayout.topToBottom = editText.getId(); buttonLayout.leftToLeft = ConstraintLayout.LayoutParams.PARENT_ID; button.setLayoutParams(buttonLayout); constraintLayout.addView(button); button.setOnClickListener(new View.OnClickListener() < public void onClick(View v) < // Обработка нажатия textView.setText("Добро пожаловать, " + editText.getText()); >>); setContentView(constraintLayout); > >

При программном создании кнопки мы можем определить у нее слушатель нажатия View.OnClickListener и с помощью его метода onClick также обработать нажатие:

button.setOnClickListener(new View.OnClickListener() < public void onClick(View v) < // Обработка нажатия >>);

Источник

Создаем кнопку в Android. Пример работы с виджетом Button в Android

Создаем кнопку в Android. Пример работы с виджетом Button в Android | Prologistic.com.ua

В этой статье мы научимся использовать виджет Button в Android. Также здесь рассказывается о том, как обрабатывать нажатия, применять стили, работать с xml-макетом кнопки, а также управлять виджетом Button в коде. Урок будет полезен для начинающих андроид-программистов.

Сегодня мы узнаем как задавать различные расположение для кнопок, менять фоновые изображения и обрабатывать события, связанные с виджетом Button .

Создаем кнопку в Android

Кнопка представляет собой кликабельный Android виджет, который может принимать различные формы и реагировать на действия пользователя, а именно: обычное нажатие, длительное нажатие и т.д. Виджет Button доступен в пакете android.widget.Button .

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

Давайте создадим первые кнопки и зададим различные свойства каждой:

Источник

Button

Follow us on Telegram Follow us on Youtube

Button (Кнопка) — это компонент, который может быть нажат пользователем для подтверждения какого-либо действия. Она является одним из основных элементов интерфейса и имеет большое значение в приложении.

Кнопка состоит из текста или иконки (или текста с иконкой), который сообщает пользователю, какое действие произойдёт после нажатия.

Поскольку Button является наследником TextView, ему доступны атрибуты для работы с текстом, такие как android:textColor, android:textAlignment и другие.

Недостаточно просто разместить кнопку на экране разметки, нужно ещё создать обработчик нажатия на кнопку. Существует несколько способов, как это можно сделать:

1. Атрибут android:onClick

Когда вы создаёте Button, вы можете в XML добавить ему атрибут android:onClick. Создадим на активности простую кнопку:

Теперь добавим этой кнопке атрибут android:onClick и в значении напишем имя метода, который будет обрабатывать нажатие. Если в классе активности этого метода нет, Android Studio скажет, что такой метод не найден.

В этом случае можно установить курсор на имени метода и нажать комбинацию Alt + Enter, затем выбрать опцию Create, после чего студия сама создаст в классе активности метод с таким названием. Либо можно перейти в класс активности и вручную создать этот метод, передав ему в параметры View.

Перейдя в MainActivity, можно увидеть, что теперь там есть метод testClick(View view). Внутри него уже писаться код, который должен выполняться после нажатия на кнопку.

Чтобы использовать метод для обработки кликов, он должен соответствовать следующим требованиям:

  • быть public
  • возвращать void
  • принимать в качестве единственного параметра экземпляр класса View
public void testClick(View view) < // пишем код обработки нажатия здесь Toast.makeText(this, "Clicked", Toast.LENGTH_LONG).show(); >

2. Метод setOnClickListener()

Кроме XML, обработчик нажатия можно задать программно в коде активности. Аналогично создадим кнопку, однако на этот раз укажем идентификатор с помощью атрибута android:id.

Теперь в коде активности определим эту кнопку и вызовем для неё метод setOnClickListener(), который установит на кнопку слушатель, отлавливающий нажатия на кнопку.

public class MainActivity extends AppCompatActivity < @Override protected void onCreate(Bundle savedInstanceState) < super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button btn_test = findViewById(R.id.btn_test); btn_test.setOnClickListener(new View.OnClickListener() < @Override public void onClick(View v) < // пишем код обработки нажатия здесь Toast.makeText(getApplicationContext(), "Clicked", Toast.LENGTH_LONG).show(); >>); > >

3. Интерфейс OnClickListener

Ещё одним способом, с помощью которого можно обрабатывать нажатия кнопок, является использование интерфейса. Интерфейс — это абстрактный класс, в котором описаны только методы без самой реализации. Реализация таких методов происходит в классе, к которому этот интерфейс подключается.

Чтобы добавить в класс интерфейс, нужно воспользоваться ключевым словом implements. Подключим интерфейс OnClickListener к нашей активности.

public class MainActivity extends AppCompatActivity implements View.OnClickListener . >

Android Studio выдаст сообщение, что мы должны реализовать метод, описанный в подключенном интерфейсе.

Поставим курсор на выделенную строку и нажмём комбинацию Alt + Enter, затем выберем опцию Implement methods.

Появится окно, в котором будет предложен список методов, которые мы хотим реализовать. В данном случае нам нужен метод onClick().

Теперь у нас на активности есть соответствующий метод.

@Override public void onClick(View v)

Сделаем обработку нажатия. Аналогично предыдущему способу, нам понадобится кнопка с идентификатором.

Вернёмся в метод onClick(). В этот метод будут попадать нажатия кнопок на активности, поэтому нам нужно добавить здесь проверку на идентификатор. Добавим следующий код.

@Override public void onClick(View v) < switch (v.getId())  case R.id.btn_test:  // пишем код обработки нажатия здесь Toast.makeText(getApplicationContext(), "Clicked", Toast.LENGTH_LONG).show(); break; > > >

Если у вас на активности всего одна кнопка, проверка с помощью switch необязательна, однако если вы хотите обрабатывать в этом методе нажатия нескольких кнопок, то нужно будет проверять идентификатор и, исходя из этого, выполнять соответствующие операции.

Теперь нужно только привязать к кнопке слушатель как мы это делали во втором способе. Единственное отличие — вместо создания нового слушателя мы будем указывать текущий.

@Override protected void onCreate(Bundle savedInstanceState)

Состояния кнопки

Кроме всего прочего, у Button есть возможность отслеживать состояния нажатий. Делается это с помощью селектора.

У селектора есть следующие атрибуты, определяющие состояние элемента:

  • android:state_pressed — когда пользователь нажимает на элемент.
  • android:state_focused — когда на элементе установлен фокус ввода.
  • android:state_enabled — когда элемент доступен.
  • android:state_checked — когда элемент в списке был отмечен.

Создадим селектор, который при нажатии на кнопку будет менять её цвет, со следующим кодом.

Источник

Читайте также:  Kotlin list add value
Оцените статью