- Подготовка
- Обработка события нажатия на кнопку в приложении
- Один обработчик нажатия для нескольких кнопок
- Обработчик события непосредственно при нажатия на кнопку
- Дополнительно
Подготовка
Создаем проект, выбираем Empty Activity, Activity Name: MainActivity, Layout Name: activity_main. В лайоуте /res/layout/activity_main.xml оставляем вывод текста TextView, добавляем кнопку Button и прописываем для каждого элемента свой id. После нажатия на кнопку будем выводить текст в TextView, который покажет, что событие было обработано.
В итоге /res/layout/activity_main.xml будет выглядеть примерно следующим образом:
<?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.firestork.coderstat.MainActivity"> <TextView android:id="@+id/myTextView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> <Button android:id="@+id/myButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Click me" /> </android.support.constraint.ConstraintLayout>
TextView и Button - 2 элемента которые нам понадобятся.
Далее в MainActivity (MainActivity.java) добавим описание Button и TextView, для возможности обращения к ним из любого метода класса, инициализируем их в методе onCreate() и заполним с помощью метода findViewById():
package com.firestork.coderstat; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.Button; import android.widget.TextView; public class MainActivity extends AppCompatActivity { TextView myTextView; Button myButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); myTextView = (TextView) findViewById(R.id.myTextView); myButton = (Button) findViewById(R.id.myButton); } }
Приступаем к обработке события нажатия на кнопку.
Обработка события нажатия на кнопку в приложении
1 способ. Обработка события нажатия с помощью метода setOnClickListener
Метод setOnClickListener() прослушивает событие нажатия на кнопку. В методе onCreate() вводим имя кнопки myButton, ставим точку (.) и вводим setO, далее студия сама предложит варианты, вот что получится:
myButton.setOnClickListener();
Внутри скобок набираем new O, далее студия подскажет то что необходимо (OnClickListener), в итоге получим следующее:
myButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { } });
Далее с помощью метода setText добавляем изменение текста в TextView:
myTextView.setText("Все ок)");
В итоге обработчик нажатия на кнопку будет выглядеть так:
myButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { myTextView.setText("Все ок)"); } });
Сохраняем, запускаем приложение и жмем кнопку.
Полный код MainActivity (MainActivity.java):
package com.firestork.coderstat; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; public class MainActivity extends AppCompatActivity { TextView myTextView; Button myButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); myTextView = (TextView) findViewById(R.id.myTextView); myButton = (Button) findViewById(R.id.myButton); myButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { myTextView.setText("Все ок)"); } }); } }
Код метода OnClickListener() можно вынести отдельно, например для работы с несколькими кнопками. Создаем обработчик нажатия:
OnClickListener oMyButton = new OnClickListener() { @Override public void onClick(View v) { myTextView.setText("Все ок)"); } };
И присваиваем обработчик для кнопки:
myButton.setOnClickListener(oMyButton);
В таком случае MainActivity (MainActivity.java) примет вид:
package com.firestork.coderstat; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; import android.view.View.OnClickListener; public class MainActivity extends AppCompatActivity { TextView myTextView; Button myButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); myTextView = (TextView) findViewById(R.id.myTextView); myButton = (Button) findViewById(R.id.myButton); OnClickListener oMyButton = new OnClickListener() { @Override public void onClick(View v) { myTextView.setText("Все ок)"); } }; myButton.setOnClickListener(oMyButton); } }
2 способ. Обработка события нажатия с помощью интерфейса OnClickListener
Для реализация данного метода необходимо добавить в класс MainActivity интерфейс OnClickListener, делается это следующим образом - implements View.OnClickListener, после чего объявление класса примет вид:
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
После добавления интерфейса строка будет подчеркнута красным, все из-за того что у нас еще нет метода onClick() интерфейса OnClickListener, чтобы это исправить жмем Alt + Enter (если при нажатии ничего не происходит, то проверьте текущую раскладку, при кириллической раскладке комбинация может не работать, переведите ввод на латинскую раскладку, например на английский) в любом месте подчеркивания, далее выбираем Implemente Methods в открывшимся окне выбираем onClick и жмем ok. После чего в конец класса MainActivity будет добавлен следующий код:
@Override public void onClick(View v) { }
В этот метод добавляем код, который необходимо выполнить по нажатию на кнопку:
@Override public void onClick(View v) { myTextView.setText("Все ок)"); }
Далее в методе onCreate() назначим обработчик для кнопки, в качестве параметра передаем this, т.е. текущий объект:
myButton.setOnClickListener(this);
Сохраняем, запускаем приложение и жмем кнопку.
Полный код MainActivity (MainActivity.java):
package com.firestork.coderstat; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; public class MainActivity extends AppCompatActivity implements View.OnClickListener { TextView myTextView; Button myButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); myTextView = (TextView) findViewById(R.id.myTextView); myButton = (Button) findViewById(R.id.myButton); myButton.setOnClickListener(this); } @Override public void onClick(View v) { myTextView.setText("Все ок)"); } }
3 способ. Обработка события нажатия с помощью атрибута onClick
В данном способе необходимо добавить атрибут onClick для нужной кнопки, есть несколько способов добавления этого атрибута:
1) Открываем activity_main.xml, во вкладке "Design" жмем на нужную кнопку и в окне "Properties", ищем свойство onClick и вводим в пустое поле название метода для обработки события нажатия кнопки.
2) Или откройте файл activity_main.xml в режиме "Text" и добавьте в элемент Button атрибут onClick с названием метода обработки нажатия кнопки:
android:onClick="clickMyBtn"
В обоих случаях, код файла activity_main.xml будет выглядеть следующим образом:
<?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.firestork.coderstat.MainActivity"> <TextView android:id="@+id/myTextView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> <Button android:id="@+id/myButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="clickMyBtn" android:text="Click me" /> </android.support.constraint.ConstraintLayout>
Далее открываем класс MainActivity (MainActivity.java) и добавляем код метода clickMyBtn():
public void clickMyBtn(View view) { myTextView.setText("Все ок)"); }
Сохраняем, запускаем приложение и жмем кнопку.
Полный код MainActivity (MainActivity.java):
package com.firestork.coderstat; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; public class MainActivity extends AppCompatActivity { TextView myTextView; Button myButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); myTextView = (TextView) findViewById(R.id.myTextView); myButton = (Button) findViewById(R.id.myButton); } public void clickMyBtn(View view) { myTextView.setText("Все ок)"); } }
3 в 1. Все 3 способа в одном примере
Далее для закрепления можно реализовать все три способа на одном экране, для этого в main_activity.xml добавим 3 кнопки, по одной кнопке на каждый способ, (полный код main_activity.xml):
<?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.firestork.coderstat.MainActivity"> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <Button android:id="@+id/myButton1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="1 способ" android:layout_weight="1" /> <Button android:id="@+id/myButton2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="2 способ" android:layout_weight="1" /> <Button android:id="@+id/myButton3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="3 способ" android:layout_weight="1" android:onClick="clickMyBtn" /> </LinearLayout> <TextView android:id="@+id/myTextView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> </android.support.constraint.ConstraintLayout>
И сам класс MainActivity со всеми тремя способами (файл MainActivity.java):
package com.firestork.coderstat; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; import android.view.View.OnClickListener; public class MainActivity extends AppCompatActivity implements View.OnClickListener { TextView myTextView; Button myButton1; Button myButton2; Button myButton3; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); myTextView = (TextView) findViewById(R.id.myTextView); myButton1 = (Button) findViewById(R.id.myButton1); myButton2 = (Button) findViewById(R.id.myButton2); myButton3 = (Button) findViewById(R.id.myButton3); OnClickListener oMyButton = new OnClickListener() { @Override public void onClick(View v) { myTextView.setText("Вы использовали 1-й способ"); } }; myButton1.setOnClickListener(oMyButton); myButton2.setOnClickListener(this); } @Override public void onClick(View v) { myTextView.setText("Вы использовали 2-й способ"); } public void clickMyBtn(View view) { myTextView.setText("Вы использовали 3-й способ"); } }
Сохраняем, запускаем, проверяем.
Один обработчик нажатия для нескольких кнопок
Часто необходимо сделать один обработчик нажатия для нескольких кнопок, т.к. функционал может практически не отличаться. Приведем пример для всех 3-х способов.
Один обработчик нажатия кнопки для 1-го способа, setOnClickListener
И так в main_activity.xml имеются 3 кнопки:
<?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.firestork.coderstat.MainActivity"> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <Button android:id="@+id/myButton1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Кнопка 1" android:layout_weight="1" /> <Button android:id="@+id/myButton2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Кнопка 2" android:layout_weight="1" /> <Button android:id="@+id/myButton3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Кнопка 3" android:layout_weight="1" /> </LinearLayout> <TextView android:id="@+id/myTextView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> </android.support.constraint.ConstraintLayout>
Открываем класс MainActivity (MainActivity.java) и в обработчик добавляем разный вывод текста в зависимости от нажатой кнопки с помощью конструкции выборки switch case:
OnClickListener oMyButton = new OnClickListener() { @Override public void onClick(View v) { switch (v.getId()) { case R.id.myButton1: myTextView.setText("Вы нажали на 1-ю кнопку"); break; case R.id.myButton2: myTextView.setText("Вы нажали на 2-ю кнопку"); break; case R.id.myButton3: myTextView.setText("Вы нажали на 3-ю кнопку"); break; } } };
И присваиваем кнопкам обработчик:
myButton1.setOnClickListener(oMyButton); myButton2.setOnClickListener(oMyButton); myButton3.setOnClickListener(oMyButton);
Сохраняем, запускаем, пробуем.
Полный код MainActivity (MainActivity.java):
package com.firestork.coderstat; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; import android.view.View.OnClickListener; public class MainActivity extends AppCompatActivity { TextView myTextView; Button myButton1; Button myButton2; Button myButton3; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); myTextView = (TextView) findViewById(R.id.myTextView); myButton1 = (Button) findViewById(R.id.myButton1); myButton2 = (Button) findViewById(R.id.myButton2); myButton3 = (Button) findViewById(R.id.myButton3); OnClickListener oMyButton = new OnClickListener() { @Override public void onClick(View v) { switch (v.getId()) { case R.id.myButton1: myTextView.setText("Вы нажали на 1-ю кнопку"); break; case R.id.myButton2: myTextView.setText("Вы нажали на 2-ю кнопку"); break; case R.id.myButton3: myTextView.setText("Вы нажали на 3-ю кнопку"); break; } } }; myButton1.setOnClickListener(oMyButton); myButton2.setOnClickListener(oMyButton); myButton3.setOnClickListener(oMyButton); } }
Один обработчик нажатия кнопки для 2-го способа, интерфейс OnClickListener
В данном случае main_activity.xml оставляем как было описано выше (с тремя кнопками) и меняем код класса MainActivity. Добавляем интерфейс, реализацию метода onClick():
@Override public void onClick(View v) { switch (v.getId()) { case R.id.myButton1: myTextView.setText("Вы нажали на 1-ю кнопку"); break; case R.id.myButton2: myTextView.setText("Вы нажали на 2-ю кнопку"); break; case R.id.myButton3: myTextView.setText("Вы нажали на 3-ю кнопку"); break; } }
И присваиваем кнопкам обработчик:
myButton1.setOnClickListener(this); myButton2.setOnClickListener(this); myButton3.setOnClickListener(this);
Сохраняем, запускаем, пробуем.
Полный код класса MainActivity (MainActivity.java):
package com.firestork.coderstat; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; public class MainActivity extends AppCompatActivity implements View.OnClickListener { TextView myTextView; Button myButton1; Button myButton2; Button myButton3; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); myTextView = (TextView) findViewById(R.id.myTextView); myButton1 = (Button) findViewById(R.id.myButton1); myButton2 = (Button) findViewById(R.id.myButton2); myButton3 = (Button) findViewById(R.id.myButton3); myButton1.setOnClickListener(this); myButton2.setOnClickListener(this); myButton3.setOnClickListener(this); } @Override public void onClick(View v) { switch (v.getId()) { case R.id.myButton1: myTextView.setText("Вы нажали на 1-ю кнопку"); break; case R.id.myButton2: myTextView.setText("Вы нажали на 2-ю кнопку"); break; case R.id.myButton3: myTextView.setText("Вы нажали на 3-ю кнопку"); break; } } }
Один обработчик нажатия кнопки для 3-го способа, атрибут onClick
Для этого способа необходимо открыть activity_main.xml и добавить для всех кнопок атрибут android:onClick="clickMyBtn", для всех кнопок один метод:
<?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.firestork.coderstat.MainActivity"> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <Button android:id="@+id/myButton1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Кнопка 1" android:layout_weight="1" android:onClick="clickMyBtn" /> <Button android:id="@+id/myButton2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Кнопка 2" android:layout_weight="1" android:onClick="clickMyBtn" /> <Button android:id="@+id/myButton3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Кнопка 3" android:layout_weight="1" android:onClick="clickMyBtn" /> </LinearLayout> <TextView android:id="@+id/myTextView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> </android.support.constraint.ConstraintLayout>
В класс MainActivity добавляем метод для обработки нажатия:
public void clickMyBtn(View v) { switch (v.getId()) { case R.id.myButton1: myTextView.setText("Вы нажали на 1-ю кнопку"); break; case R.id.myButton2: myTextView.setText("Вы нажали на 2-ю кнопку"); break; case R.id.myButton3: myTextView.setText("Вы нажали на 3-ю кнопку"); break; } }
Сохраняем, запускаем, пробуем.
Полный код класса MainActivity будет выглядеть следующим образом (MainActivity.java):
package com.firestork.coderstat; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; public class MainActivity extends AppCompatActivity { TextView myTextView; Button myButton1; Button myButton2; Button myButton3; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); myTextView = (TextView) findViewById(R.id.myTextView); myButton1 = (Button) findViewById(R.id.myButton1); myButton2 = (Button) findViewById(R.id.myButton2); myButton3 = (Button) findViewById(R.id.myButton3); } public void clickMyBtn(View v) { switch (v.getId()) { case R.id.myButton1: myTextView.setText("Вы нажали на 1-ю кнопку"); break; case R.id.myButton2: myTextView.setText("Вы нажали на 2-ю кнопку"); break; case R.id.myButton3: myTextView.setText("Вы нажали на 3-ю кнопку"); break; } } }
Обработчик события непосредственно при нажатии на кнопку
Все выше описанные методы обработки нажатия на кнопку в приложении будут срабатывать после того как вы уберете палец с кнопки, т.е. на отжатие кнопки. Для того что бы добавить обработчик непосредственно при касании, нажатии, на кнопку необходимо использовать слушатель OnTouchListener(). Попробуем его использовать.
В activity_main.xml добавим одну кнопку и текст:
<?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.firestork.coderstat.MainActivity"> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <Button android:id="@+id/myButton3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Кнопка" android:layout_weight="1" /> </LinearLayout> <TextView android:id="@+id/myTextView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> </android.support.constraint.ConstraintLayout>
А в класс MainActivity добавляем setOnTouchListener(), в метод onCreate():
myButton.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { if (event.getAction() == MotionEvent.ACTION_DOWN) { myTextView.setText("Вы нажали на кнопку :)"); } return false; } });
Метод onTouch() содержит параметр MotionEvent, который позволяет настроить обработку в зависимости от касания.
ACTION_DOWN - событие касания по экрану (в данном случае кнопки).
ACTION_UP - соответственно срабатывает когда вы уберете палец с экрана (элемента).
Выведем в TextView информацию при нажатии на кнопку и отжатие:
myButton.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: myTextView.setText("Вы нажали на кнопку :)"); break; case MotionEvent.ACTION_UP: myTextView.setText("Нажмите еще раз"); break; } return false; } });
Сохраняем, запускаем и пробуем.
Полный код класса MainActivity (MainActivity.java):
package com.firestork.coderstat; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.MotionEvent; import android.view.View; import android.widget.Button; import android.widget.TextView; public class MainActivity extends AppCompatActivity { TextView myTextView; Button myButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); myTextView = (TextView) findViewById(R.id.myTextView); myButton = (Button) findViewById(R.id.myButton); myButton.setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { switch (event.getAction()) { case MotionEvent.ACTION_DOWN: myTextView.setText("Вы нажали на кнопку :)"); break; case MotionEvent.ACTION_UP: myTextView.setText("Нажмите еще раз"); break; } return false; } }); } }
Дополнительно
Сделать кнопку недоступной
В классе MainActivity в методе onCreate() добавляем следующий код:
myButton.setEnabled(false);
Такой код пригодится, если необходимо выключить кнопку при определенных условиях.
Так же можно отключить кнопку в activity_main.xml с помощью атрибута android:enabled="false":
<Button android:id="@+id/myButton" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Кнопка" android:layout_weight="1" android:enabled="false" />
Получить текст кнопки
Button myButton= (Button)view; String myButtonText = myButton.getText().toString(); myTextView.setText(myButtonText);
Комментарии
Какой кашмар - эта разработка под Андроид.. неужели не могут сделать простую IDE ? Зачем так мучать людей ?
ОтветитьРазработчик под Андроид всегда должен чувствовать боль))
ОтветитьПоооооочемуууууу????
ОтветитьЧто делать если вылезает: Unresolved reference v7, при попытке import android.support.v7.app.AppCompatActivity????
ОтветитьХорошо, а как сделать что бы когда я нажал(зажал) кнопку, у меня менялись значения?
ОтветитьЕсть кнопка increment i decrement, и мне лень каждый раз нажимать на кнопку. Хочу нажать раз, i increment мне увеличивал значения.
Привет от Тохи!
Ответить1) case MotionEvent.ACTION_DOWN: myTextView.setText("Вы нажали на кнопку :)"); break;
ОтветитьУ меня Андроид Студия ругается на setText ?!
error: non-static method setText(CharSequence) cannot be referenced from a static context
https://ru.stackoverflow.com/questions/728770/%D0%9E%D1%88%D0%B8%D0%B1%D0%BA%D0%B0-non-static-variable-this-cannot-be-referenced-from-a-static-context
Поэтому возникает ошибка “non-static variable this cannot be referenced from a static context”. Дословно: вы обращаетесь к нестатической переменной, но делаете это без уважения из статического контекста, и это не имеет смысла.
//
В моём случае чего надо делать, чтобы ошибка исчезла?
2) case MotionEvent.ACTION_DOWN: sounds.play(b7,1.0f,1.0f,1,0,1); return true;// break;
Если в конце строки стоит break, то программа вылетает, когда сделал return true; , то всё работает. В чём причина?
А как прописать, чтобы при нажатии на кнопку появлялась надпись из EditText? Для примера приложение «подписка», вводим имя и эл почту , нажимаем кнопку и выводится надпись «подписка оформлена на ИМЯ + Эл Почта»
ОтветитьПриветствую, подскажите как настроить два события на одну кнопку методом onClick?
ОтветитьА как насчёт обработки последовательных нажатий?
ОтветитьВ смысле, нажатие - действие,
повторное нажатие - возврат на исходную позицию?