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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 5.00
Darth_Sanchez
4 / 4 / 1
Регистрация: 28.04.2013
Сообщений: 64
#1

Сравнение EditText и String - Android

15.07.2014, 02:36. Просмотров 1726. Ответов 14
Метки нет (Все метки)

Сравнение строк в jave можно осуществить таким образом:
Java
1
2
3
String str1 = "abc";
String str2 = "abc";
str1.equals(str2);
Но когда сравнивается произвольная строка со строкой из поля EditText, то даже при одинаковых строках, пишет, что строки не равны.
Java
1
2
EditText editText;
editText.getText().toString().equals(str1);
Подскажите, в чём ошибка?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
angryrobot
Командир зеленых роботов
346 / 283 / 53
Регистрация: 08.10.2013
Сообщений: 564
15.07.2014, 09:49     Сравнение EditText и String #2
Цитата Сообщение от Darth_Sanchez Посмотреть сообщение
Подскажите, в чём ошибка?
Никакой ошибки нет, все прекрасно работает

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
public class MainActivity extends ActionBarActivity {
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            EditText et = (EditText) findViewById(R.id.editText1);
            et.setText("test");
            if (et.getText().toString().equals("test")) { 
                Toast.makeText(this, "equals", Toast.LENGTH_SHORT).show();
            }
            
        }
}
Darth_Sanchez
4 / 4 / 1
Регистрация: 28.04.2013
Сообщений: 64
15.07.2014, 11:24  [ТС]     Сравнение EditText и String #3
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
    public void CheckAnswer()
    {
        Toast toast;
        
        if(entryFieldEditText.getText().toString().equalsIgnoreCase(_answer))
        {
            toast = Toast.makeText(getApplicationContext(), "Правильно", Toast.LENGTH_LONG); 
        }
        else
        {
            toast = Toast.makeText(getApplicationContext(), "Неправильно", Toast.LENGTH_LONG); 
        }
 
        toast.show(); 
    }

в _answer стоит "1", в entryFieldEditText ввожу "1" и мне выдаёт, что строки не равны(
Паблито
2012 / 1754 / 545
Регистрация: 12.05.2014
Сообщений: 6,208
Завершенные тесты: 1
15.07.2014, 11:34     Сравнение EditText и String #4
Цитата Сообщение от Darth_Sanchez Посмотреть сообщение
в _answer стоит "1", в entryFieldEditText ввожу "1" и мне выдаёт, что строки не равны
не верю (с)
я бы до условия поставил вывод в консоль, посмотреть чему на самом деле равна _answer
Darth_Sanchez
4 / 4 / 1
Регистрация: 28.04.2013
Сообщений: 64
15.07.2014, 11:40  [ТС]     Сравнение EditText и String #5
Java
1
Log.d(entryFieldEditText.getText().toString(), _answer);
Итак проверяю) равны одному и тому же и всё равно не равны
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,070
15.07.2014, 14:09     Сравнение EditText и String #6
Все правильно сверяет, специально создал проект и запустил в эмуляторе: 1 = 1
Ищите проблему в EditText или в _answer.
Java
1
2
3
4
5
6
7
8
9
10
    public void clickme(View v) {
        EditText et = (EditText) findViewById(R.id.editText1);
        Toast toast; 
        String _answer = "1";
        if(et.getText().toString().equalsIgnoreCase(_answer))      
            toast = Toast.makeText(getApplicationContext(), "Правильно", Toast.LENGTH_LONG); 
        else       
            toast = Toast.makeText(getApplicationContext(), "Неправильно", Toast.LENGTH_LONG); 
        toast.show(); 
    }
Darth_Sanchez
4 / 4 / 1
Регистрация: 28.04.2013
Сообщений: 64
15.07.2014, 15:14  [ТС]     Сравнение EditText и String #7
бред какой((( всё делаю как надо и такой косяк, никак не могу понять в чём проблема
Паблито
2012 / 1754 / 545
Регистрация: 12.05.2014
Сообщений: 6,208
Завершенные тесты: 1
15.07.2014, 15:22     Сравнение EditText и String #8
ээээ wtf ?
вместо EditText et = (EditText) findViewById(R.id.editText1);

надо бы v (параметр который прилетает в метод clickme()) кастовать в EditText и уже из него тащить getText().toString()
forcelain
6 / 6 / 1
Регистрация: 14.07.2014
Сообщений: 28
15.07.2014, 15:27     Сравнение EditText и String #9
С чего Вы взяли, что clickme повешан на EditText, а не на кнопку?
Паблито
2012 / 1754 / 545
Регистрация: 12.05.2014
Сообщений: 6,208
Завершенные тесты: 1
15.07.2014, 15:32     Сравнение EditText и String #10
Ну пусть на кнопку, ненадо меня троллить, я сам тролль еще тот.

Я говорю о том, что возможно (!) когда вот так писать:
Java
1
2
public void clickme(View v) {
        EditText et = (EditText) findViewById(R.id.editText1);
то et инициализируется заново из ресурсов и равна "" (ваш кеп), тогда EditText надо делать глобальной переменной в этой активити и убрать эту строку из clickme()
forcelain
6 / 6 / 1
Регистрация: 14.07.2014
Сообщений: 28
15.07.2014, 15:43     Сравнение EditText и String #11
Цитата Сообщение от Паблито Посмотреть сообщение
то et инициализируется заново из ресурсов и равна "" (ваш кеп),
et не инициализируется методом findViewById, findViewById может быть вызвана в какое угодно время после создания активити и после выполения отдаст вьюху именно в том, состоянии в котором Вы её видите на экране, т.е. с введенным текстом.
Darth_Sanchez
4 / 4 / 1
Регистрация: 28.04.2013
Сообщений: 64
15.07.2014, 21:11  [ТС]     Сравнение EditText и String #12
товарищи, я решил проблему. она заключалась в том, что _answer я считывал с файла и там добавлялся лишний пробел в начале, но при выводе значения _answer в TextView пробела, почему-то, не было
NiRamz
211 / 211 / 16
Регистрация: 26.12.2010
Сообщений: 691
15.07.2014, 21:50     Сравнение EditText и String #13
вы его могли просто не видеть визуально, при сравнении строк из ET не забывайте сделать .trim(), тогда пробелы случайно поставленные в начале и конце подотрутся
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,070
16.07.2014, 08:00     Сравнение EditText и String #14
В таких случаях очень полезно заключать вывод в лог или в тост в кавычки или другие символы.
Сразу бы увидели "1 ".
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.07.2014, 15:56     Сравнение EditText и String
Еще ссылки по теме:

Android EditText
Android Смайлы и EditText
Кастомный EditText Android
Не работает сравнение String с пустой строкой Android
Android Не работает сравнение String через ==

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

Или воспользуйтесь поиском по форуму:
Darth_Sanchez
4 / 4 / 1
Регистрация: 28.04.2013
Сообщений: 64
16.07.2014, 15:56  [ТС]     Сравнение EditText и String #15
я так и делал, но выводил сразу всю строку. потом сделал проверку и вывел посимвольно и там уже обнаружил этого засранца пробел
Yandex
Объявления
16.07.2014, 15:56     Сравнение EditText и String
Ответ Создать тему
Опции темы

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