Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Seroga7
6 / 6 / 1
Регистрация: 08.12.2012
Сообщений: 147
#1

Касание в EditText - Программирование Android

24.11.2014, 00:07. Просмотров 652. Ответов 9
Метки нет (Все метки)

Подскажите пожалуйста, как можно обработать касание в EditText. Нужно при касании менять цвет, но не знаю как правильно вызвать обработчик касания.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.11.2014, 00:07
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Касание в EditText (Программирование Android):

Ввод в один EditText и авто-вычисление в двух других EditText - Программирование Android
Всем привет. Есть три поля EditText,виртуальные клавиатуры у всех заблокированы,а ввод чисел в поле осуществляется с Button(ов). Вопрос...

EditText смещается вниз при вводе текста, который занимает объём больше, чем EditText - Программирование Android
EditText сещается вниз при вводе текста который занимает обём больше чем EditText. Как устранить?

Копирование текста во время касание - Программирование Android
Как сделать так чтобы по нажатию на текста, текст копировался в буфер обмена?(на Android Studio)

Пропустить касание через окно - Программирование Android
Делаю приложение которое будет в Service отлавливать события. Использую WindowManager для создания прозрачного окна в Service.Можно ли...

Некорректная реакция на касание элемента GridView - Программирование Android
У меня есть адаптер и в нем обработчик касания, который во-время касания выводить текст с того элемента на котором было осуществлено...

Каким образом мультитач определяет второе и последующее касание? - Программирование Android
Уважаемы форумчане, есть какое то объяснение по такому вопросу? Каким образом мультитачь определяет второе и последующее касание? ...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
dubok79
323 / 121 / 11
Регистрация: 01.11.2012
Сообщений: 586
24.11.2014, 09:07 #2
Наверное нужно воспользоваться селектором <selector>. Почитайте тут.
Andruy94
1 / 1 / 0
Регистрация: 22.08.2014
Сообщений: 14
25.11.2014, 02:12 #3
если просто касание,то можно onTouchListner исользовать
Seroga7
6 / 6 / 1
Регистрация: 08.12.2012
Сообщений: 147
25.11.2014, 09:42  [ТС] #4
Andruy94, я понимаю, но я не знаю как его правильно использовать. Как его прикрутить к EditText. Можешь пожалуйста привести простенький пример?
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
25.11.2014, 11:16 #5
Смотришь справку по EditText.
Понимаешь, что обработчик View.OnTouchListener не прикручен автоматом к EditText, а значит придется прикручивать как-то самому.
Как?
Смотрим методы и в наследуемых от View методах находишь setOnTouchListener(View.OnTouchListener l).
О, думаешь, ты - зашибись.
Создадим экземпляр View.OnTouchListener и прикрутим его к EditText, вызвав указанный метод и передав его туда.
Осталось создать.
Подхода, как всегда, несколько - я знаю пока аж два.

Первый - не заморачиваемся с создание нового класса, а создаем экземпляр прямо в вызове метода
setOnTouchListener

Java
1
2
3
4
etEditText.setOnTouchListener(new View.OnTouchListener(){
 
}
);
Ну или определить новый класс, "включив" в него интерфейс View.OnTouchListener.

Java
1
2
class MyOnTouchListener implements View.OnTouchListener{
}
Создать экземпляр такого класса.
Java
1
MyOnTouchListener myOnTouchListener = new MyOnTouchListener();
И уже его скормить методу setOnTouchListener
Java
1
etEditText.setOnTouchListener(myOnTouchListener )
Грубо так.
В ходе реализации тебе подскажут, что нужно перегрузить метод onTouch (View v, MotionEvent event)

Вообщем, твори
Andruy94
1 / 1 / 0
Регистрация: 22.08.2014
Сообщений: 14
25.11.2014, 15:23 #6
Armagedo предложил много решений,но мне больше другое радует:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public class MainActivity extends Activity implements OnTouchListener {
// твой код
@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        tv=(TextView) findViewById(R.id.tv);
        (findViewById(R.id.lM)).setOnTouchListener(this);
    }
@Override
    public boolean onTouch(View v, MotionEvent event) {
        // TODO Auto-generated method stub
       }
}
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
25.11.2014, 15:38 #7
Ну, не много - а 2.
И твоё решение - это частный случай варианта 2 выше.
Andruy94
1 / 1 / 0
Регистрация: 22.08.2014
Сообщений: 14
25.11.2014, 15:44 #8
ну да,просто мне лично этот очень понравился,вот я его и рекламирую
Armagedo
208 / 208 / 60
Регистрация: 22.08.2014
Сообщений: 644
25.11.2014, 15:52 #9
Та я чё, я ничё
Seroga7
6 / 6 / 1
Регистрация: 08.12.2012
Сообщений: 147
25.11.2014, 16:59  [ТС] #10
Armagedo, Andruy94, спасибо ребят, пошел творить!)
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.11.2014, 16:59
Привет! Вот еще темы с ответами:

Сенсорный дисплей не правильно реагирует на касание. Сброс настроек - Программирование Android
Здравствуйте у меня имеится телефон Hero H8 китаец игрался им сбросил настройки после перезагрузки надо было прокалибровать телефон а я...

EditText - Программирование Android
Не работает пример взятый из книги myEditText.setOnKeyListener(new OnKeyListener() { public boolean onKey(View v, int...

EditText - Программирование Android
В ListView каждый пункт состоит из нескольких EditText, при нажатий на EditText в пункте например 4, фокус ставится в пункт 1 ListView(а),...

Edittext - Программирование Android
Как проверить находится ли edittext в фокусе?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
25.11.2014, 16:59
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru