Сравнение содержимого массива строк с содержимым EditText

#android #xml #string

#Android #xml #строка

Вопрос:

В принципе, у меня есть текстовое поле и поле edittext, которое выглядит следующим образом:

Имя пользователя [ ]

Затем внизу есть кнопка под названием «Отправить».

Достаточно просто, я должен ввести имя пользователя, сравнить его со строковым массивом, который у меня есть в моем strings.xml файл, и если он не равен ни одной из строк в массиве, тогда я готов идти.

Массив строк выглядит следующим образом:

< string-array name="usernames">
<
элемент>Брайан < item>John</item>
<
элемент>Мэтт < item>Mike</item>
<
/string-array>

Я не понимаю, как я могу выполнить простой оператор if, который в псевдокоде выглядит как:

если (username_entered_in_editText == usernameArray[содержимое]) { submit_check = true; }

Любой совет был бы высоко оценен!

Ответ №1:

Попробуйте что-то вроде этого. Получите экземпляр вашей строки[], получите текст из вашего EditText с помощью getText().toString() и сравните его с каждым именем в списке. Конечно, это не оптимизировано. Если ваш массив строк отсортирован, вы могли бы реализовать двоичный поиск, чтобы ускорить его, но общая теория здесь будет работать.

 String[] usernames = getStringArray(R.array.usernames);
EditText editText = (EditText)findViewById(R.id.edittext);
String candidate = editText.getText().toString();
boolean submit_check = usernameTaken(candidate, usernames);

public boolean usernameTaken(String candidate, String[] usernames) {
    for(String username : usernames) {
        if(candidate.equals(username)) {
            return true;
        } 
    }
    return false;
}