Проверьте EditText, чтобы включить/отключить кнопки.

У меня есть EditText, в котором хранится строка A. Когда происходят некоторые процессы, EditText обновляется новым значением (stringB). У меня три кнопки. Я хочу, чтобы они были отключены, пока EditText = stringA и обновлено до включения, когда EditText содержит значение stringB.

final EditText latlongText = (EditText) findViewById(R.id.EditText_COord)

Это мой текст редактирования. По умолчанию он просто содержит строку, хранящуюся в XML как android:hint= "blah blahstringA"

Я обновляю это так в коде:

   latlongText.setText(stringB);

В onCreate у меня есть:

 buttonA.setEnabled(false);
 buttonB.setEnabled(false);
 buttonC.setEnabled(false);

Я не уверен, где и как правильно разместить код для повторного включения этих кнопок.

Возможно, атрибут «кликабельный» тоже вариант? Я хочу, чтобы они включались, когда stringB перезаписывает значение, которое в настоящее время хранится как строка «android: подсказка».

Спасибо


person GrumP    schedule 09.10.2012    source источник


Ответы (3)


взгляните на это используя textwatcher в основном вам нужно использовать textwatchers, чтобы добраться до знать, когда ваш текст редактирования изменен, и вы можете включить / отключить кнопку в зависимости от текста в тексте редактирования

person Sourabh Saldi    schedule 09.10.2012
comment
Да, см. мой комментарий ниже относительно метода onLcationChanged. Я не уверен, где разместить этот код. В настоящее время выдает синтаксические ошибки, жалуясь на размещение скобок. - person GrumP; 09.10.2012
comment
Вот изображение: кажется, что все скобки в остальной части кода перепутаны i.imgur.com/ 64кВН.jpg - person GrumP; 09.10.2012
comment
это не очень понятно из изображения в самой активности создания добавьте код, как мы обычно делаем для кнопки onclicklistener, или добавьте свой код прямо здесь, у вас возникли проблемы со скобками, используйте cntrl+shift+f для форматирования кода, тогда он должен сделать все ясно - person Sourabh Saldi; 09.10.2012
comment
пожалуйста, проверьте, где вы добавляете этот код в oncreate, возможно, вы добавляете этот код после закрытия oncreate - person Sourabh Saldi; 09.10.2012

if(latlongText.getText().equals(stringA)){
 buttonA.setEnabled(false);
 buttonB.setEnabled(false);
 buttonC.setEnabled(false);
}
elseIf(latlongText.getText().equals(stringB)){
 buttonA.setEnabled(true);
 buttonB.setEnabled(true);
 buttonC.setEnabled(true);
}

попробуйте этот код

person Syn3sthete    schedule 09.10.2012
comment
Спасибо, но, похоже, мне нужно использовать TextWatcher, это не сработало. - person GrumP; 09.10.2012

person    schedule
comment
Спасибо, в первой строке опечатка. Однако даже после исправления я получаю ошибки относительно скобок. Может быть, у меня это не в том месте в моем коде. latlong устанавливается latlong.setText(stringB); Это внутренний метод onLocationChanged(Location loc), поэтому я не знаю, как применить его к моей логике. - person GrumP; 09.10.2012
comment
@GrumP: хорошо .. даже я отредактировал свой ответ, спасибо, что указали! также я не нашел никаких ошибок относительно скобок, поэтому я думаю, что вы ошиблись, поместив строки в нужное место. Пожалуйста, проверьте еще раз. Вам не нужно беспокоиться, даже если он находится в onLocationChanged. Этот метод может работать хорошо. - person Hiral Vadodaria; 09.10.2012
comment
Использовал этот код в onCreate, работал хорошо. Теперь у меня есть желаемый функционал. Спасибо! :) - person GrumP; 09.10.2012