Google Android - это несложно

Добро пожаловать на форум сайта startandroid.ru
Текущее время: 24 сен 2018, 12:32

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 215 ]  На страницу Пред.  1 ... 7, 8, 9, 10, 11
Автор Сообщение
СообщениеДобавлено: 10 сен 2015, 21:15 
Аватар пользователя

Зарегистрирован: 25 авг 2015, 10:54
Сообщений: 51
Благодарил (а): 2 раз.
Поблагодарили: 10 раз.
YAndrei,
для кнопок можно легко и непринуждённо делать onClick автоматизированный, тем более АС умеет вставлять его прямо из файла разметки.

Ну а .setOnClickListener можно цеплять к любой view. Хоть к текстовому полю, хоть к кнопке, хоть к картинке.
Вам, как будущему разработчику, необходимо чётко понимать, и уметь применять, методику работы именно .setOnClickListener, потому что с onClick и так всё понятно :)

_________________
Изображение


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 10 сен 2015, 21:28 

Зарегистрирован: 10 сен 2015, 20:08
Сообщений: 2
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.
doter.ua писал(а):
[quote="YAndrei"или же есть какой другой способ, так как все это кажется громоздким.
Подскажите пожалуйста как будет выглядеть наиболее правильный вариант.


Код: [ Загрузить ] [ Скрыть ]
  1. свич(вью.ид){ 
  2.    case бтн1: 
  3.       myMethod1();   
  4.       break; 
  5.    case бтн2: 
  6.       myMethod2();   
  7.       break; 
  8.  
[/quote]
Большое спасибо за ответ


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 11 ноя 2015, 14:56 

Зарегистрирован: 20 окт 2015, 15:54
Сообщений: 4
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Если что, у кого "ругается" (во втором методе обработки кнопок) на строчку :
public class MainActivity extends Activity implements OnClickListener
после добавления implements OnClickListener , то я решила эту проблему так:
1. Навела курсор на OnClickListener и нажала ALt+Enter -> Выбрать Implement methods
Изображение
2. Появится такое окошко (нажать ОК)
Изображение
Внизу делается метод onClick (С которым мы и работаем)

PS: Я просто сома из урока не поняла как это сделать (не могу сказать в чем причина ,но либо урок так построен что не понять либо просто человеку не связанному с программированием тяжело во всем сразу разобраться), а когда сама потыкалась , то все поняла. Вдруг кому поможет мой коммент. Сама если что ищу ответы на форуме. :D


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 27 ноя 2015, 00:34 

Зарегистрирован: 18 ноя 2015, 15:43
Сообщений: 3
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Здравствуйте! У меня следующая ситуация: на предпросмотре в Design текст и кнопки отображаются нормально(текст вверху, кнопки ниже), при тестировании на реальном устройстве или эмуляторе текста не видно. Решаю проблему при помощи сдвига всех view элементов вниз. После этого все работает, но получается, что Design в xml файле и реальное устройство (или эмулятор) видят xml по-разному, с чем это может быть связано? Спасибо!


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 20 дек 2015, 10:16 

Зарегистрирован: 16 дек 2015, 13:13
Сообщений: 9
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
в обработчике событий
Код: [ Загрузить ] [ Скрыть ]
  1. public void onClick(View v) {      
  2.      switch (v.getId()) { 
  3.  
  4.      case R.id.btnOk:        
  5.        tvOut.setText("Нажата кнопка ОК"); 
  6.        break; 
  7.  
  8.      case R.id.btnCancel:        
  9.        tvOut.setText("Нажата кнопка Cancel"); 
  10.        break; 
  11.      } 
  12.    } 

почему нельзя вместо case R.id.btnOk: использовать case btnOk.getId(): ? они ведь возвращают одно и тоже значение - ID элемента


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 17 янв 2016, 13:02 

Зарегистрирован: 16 янв 2016, 18:46
Сообщений: 3
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
почему у меня два урока стали не подсвечены жирным и их нет в списке для запуска, вчера все работало


Вложения:
урок10.PNG
урок10.PNG [ 68.19 KiB | Просмотров: 4467 ]
Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 18 янв 2016, 10:59 

Зарегистрирован: 16 янв 2016, 18:46
Сообщений: 3
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
удалил уроки, создал уроки снова все работает, не понятно, что было


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 08 фев 2016, 20:14 

Зарегистрирован: 02 фев 2016, 17:50
Сообщений: 7
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.
Привет!
Урок 10 - скопировал xml-содержимое экрана и вижу в MainActivity.java
в строке setContentView(R.layout.activity_main);
символ R подсвечен красным. Если запустить проект, то все ок, после запуска эта подсветка пропадает (наверное создается этот класс R)
А как устранить эту ошибку до запуска отладки? В AS 1.5.1 горячие клавиши типа <Ctrl>+<S> или <Ctrl>+<Shift>+<S> не работают
Щелкаю по "лампочке" - предлагается несколько вариантов, какой из них нужно выбрать?


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 15 фев 2016, 07:16 

Зарегистрирован: 13 фев 2016, 19:34
Сообщений: 4
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
Хоть убей не могу понять, почему требуется скобка. Ведь их везде хватает. И почему неизвестен chb1, ведь его выше объявили.
И еще проблема, в этом коде рандомным образом подсвечивается (View v), не могу понять логики. Создаю несколько раз один проект с одним кодом (вставляю из буфера), то подсвечивается, то нет (второй скрин). При этом предыдушей ошибки нет, но всё равно приложение не запустить.

Вложение:
java2.jpg
java2.jpg [ 52.04 KiB | Просмотров: 4425 ]


Вложение:
java3.jpg
java3.jpg [ 38.64 KiB | Просмотров: 4425 ]


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 23 апр 2016, 12:48 

Зарегистрирован: 22 апр 2016, 17:30
Сообщений: 2
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Simmer писал(а):
Хоть убей не могу понять, почему требуется скобка. Ведь их везде хватает. И почему неизвестен chb1, ведь его выше объявили.
И еще проблема, в этом коде рандомным образом подсвечивается (View v), не могу понять логики. Создаю несколько раз один проект с одним кодом (вставляю из буфера), то подсвечивается, то нет (второй скрин). При этом предыдушей ошибки нет, но всё равно приложение не запустить.

Вложение:
java2.jpg


Вложение:
java3.jpg



добавь имплементацию обработчика в класс. У Вас не законченый метод - потому и скобку требует перед вторым. chb1 лучше сделать отдельным полем а не локальной переменной метода.


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 15 янв 2017, 14:42 

Зарегистрирован: 15 янв 2017, 14:29
Сообщений: 1
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
ДД

не могу понять, почему студия ругается на setOnClickListener в этом уроке, а в предыдущем уроке все было в порядке

Код: [ Загрузить ] [ Скрыть ]
Using XML Syntax Highlighting
  1. package ru.startandroid.p0101listener;
  2.  
  3. import android.app.Activity;
  4. import android.os.Bundle;
  5. import android.view.View;
  6. import android.widget.Button;
  7. import android.widget.TextView;
  8.  
  9. public class MainActivity extends Activity {
  10.  
  11.     // описание объектов
  12.     TextView tvOut;
  13.     Button btnOk;
  14.     Button btnCancel;
  15.  
  16.     @Override
  17.     public void onCreate(Bundle savedInstanceState) {
  18.         super.onCreate(savedInstanceState);
  19.         setContentView(R.layout.activity_main);
  20.  
  21.         // ищем View-элементы для onCreate
  22.         tvOut = (TextView) findViewById(R.id.tvOut);
  23.         btnOk = (Button) findViewById(R.id.btnOk);
  24.         btnCancel = (Button) findViewById(R.id.btnCancel);
  25.  
  26.         // создаем обработчик нажатия кнопок
  27.         View.OnClickListener oclBtn = new View.OnClickListener() {
  28.             @Override
  29.             public void onClick(View v) {
  30.                 // по id определеяем кнопку, вызвавшую этот обработчик
  31.                 switch (v.getId()) {
  32.                     case R.id.btnOk:
  33.                         // кнопка ОК
  34.                         tvOut.setText("Нажата кнопка ОК");
  35.                         break;
  36.                     case R.id.btnCancel:
  37.                         // кнопка Cancel
  38.                         tvOut.setText("Нажата кнопка Cancel");
  39.                         break;
  40.                 }
  41.             };
  42.  
  43.         // присвоим обработчик кнопкам
  44.             btnOk.setOnClickListener(oclBtn);
  45.             btnCancel.setOnClickListener(oclBtn);
  46.  
  47.     }
  48. }
  49.  


как это исправить?


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 30 апр 2017, 14:26 

Зарегистрирован: 30 апр 2017, 14:24
Сообщений: 1
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Добрый день! Не могли бы вы подытожить какой способ обработки является наиболее правильным в небольших приложениях?


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 07 фев 2018, 15:58 

Зарегистрирован: 07 фев 2018, 15:56
Сообщений: 1
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Как по мне лучше сделать следующим образом:
Код: [ Загрузить ] [ Скрыть ]
  1. OnClickListener onBtnClick = new OnClickListener() { 
  2.             @Override 
  3.             public void onClick(View v) { 
  4.                 Button b = (Button) v; 
  5.                 tvOut.setText(b.getText() + " was pressed"); 
  6.             } 
  7.         }; 

Мне кажется, что так мы значительно сокращаем количество кода


Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 16 апр 2018, 16:50 

Зарегистрирован: 16 апр 2018, 16:46
Сообщений: 1
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Всем добрый день, можете подсказать, в чем ошибка?


Вложения:
Безымянный1.png
Безымянный1.png [ 35.13 KiB | Просмотров: 812 ]
Вернуться наверх
 Профиль  
 
СообщениеДобавлено: 16 апр 2018, 18:00 
Аватар пользователя

Зарегистрирован: 12 май 2017, 16:15
Сообщений: 18
Откуда: RU.MO.Balashikha
Благодарил (а): 0 раз.
Поблагодарили: 1 раз.
Заменить switch на конструкцию из if-else.

_________________
Вертексы должны образовывать конвексный браш...

QNotez - простое и быстрое приложение для создания заметок


Вернуться наверх
 Профиль  
 
Показать сообщения за:  Сортировать по:  
Начать новую тему Ответить на тему  [ Сообщений: 215 ]  На страницу Пред.  1 ... 7, 8, 9, 10, 11

Часовой пояс: UTC + 3 часа


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

Найти:
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB