#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;
}