Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

Сравнение EditText и String - Программирование Android

15.07.2014, 02:36. Просмотров 2439. Ответов 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);
Подскажите, в чём ошибка?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.07.2014, 02:36
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Сравнение EditText и String (Программирование Android):

Передать String-путь в EditText AlertDialog'a ? - Программирование Android
Вызывается Алерт диалог, в нем кнопка выбора файла, выбираем файл, получаем его путь, String FilePath = intent.getData().getPath(); ...

Считать с editText русские символы (киррилицу) в string - Программирование Android
Вопрос очень прост. Как считать с editText русские символы(киррилицу) в string?

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

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

Не работает сравнение String через == - Программирование Android
if (oldParam1 == param1 && oldParam2==param2){ System.out.println("if"); ...

Не работает сравнение String с пустой строкой - Программирование Android
Добрый день. Возникла проблема использования оператора if при нажатии кнопки. btn.setOnClickListener(new...

14
angryrobot
Командир зеленых роботов
348 / 285 / 53
Регистрация: 08.10.2013
Сообщений: 565
15.07.2014, 09:49 #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();
            }
            
        }
}
1
Darth_Sanchez
4 / 4 / 1
Регистрация: 28.04.2013
Сообщений: 64
15.07.2014, 11:24  [ТС] #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" и мне выдаёт, что строки не равны(
0
Pablito
2614 / 2097 / 651
Регистрация: 12.05.2014
Сообщений: 7,346
Завершенные тесты: 1
15.07.2014, 11:34 #4
Цитата Сообщение от Darth_Sanchez Посмотреть сообщение
в _answer стоит "1", в entryFieldEditText ввожу "1" и мне выдаёт, что строки не равны
не верю (с)
я бы до условия поставил вывод в консоль, посмотреть чему на самом деле равна _answer
0
Darth_Sanchez
4 / 4 / 1
Регистрация: 28.04.2013
Сообщений: 64
15.07.2014, 11:40  [ТС] #5
Java
1
Log.d(entryFieldEditText.getText().toString(), _answer);
Итак проверяю) равны одному и тому же и всё равно не равны
0
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,072
15.07.2014, 14:09 #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(); 
    }
0
Darth_Sanchez
4 / 4 / 1
Регистрация: 28.04.2013
Сообщений: 64
15.07.2014, 15:14  [ТС] #7
бред какой((( всё делаю как надо и такой косяк, никак не могу понять в чём проблема
0
Pablito
2614 / 2097 / 651
Регистрация: 12.05.2014
Сообщений: 7,346
Завершенные тесты: 1
15.07.2014, 15:22 #8
ээээ wtf ?
вместо EditText et = (EditText) findViewById(R.id.editText1);

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

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

AsyncTask<String, String, String> объясните пожалуйста - Программирование Android
При описаний класса наследника AsyncTask мы в угловых скобках указываем три типа данных: 1. Тип входных данных. Это данные которые пойдут...

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

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

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


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Опции темы

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