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

Казалось бы, эквивалентные if, но один работает, а второй нет - Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Android Преобразование имени контакта в строку http://www.cyberforum.ru/android-dev/thread320720.html
Добрый день! С помощью примера из SDK извлек имена контактов. private Cursor getContacts() { // Run query Uri uri = ContactsContract.Contacts.CONTENT_URI; String projection = new String { ContactsContract.Contacts._ID, ContactsContract.Contacts.DISPLAY_NAME }; String selection = ContactsContract.Contacts.IN_VISIBLE_GROUP;
Android Идеи программ под Android Уважаемые форумчане! Очень нужны идеи программ под Android. Главное условие - оригинальность. Приведите примеры таких программ, которых еще на Android'e пока нет. Спасибо. http://www.cyberforum.ru/android-dev/thread319725.html
Android Ошибка на планшете m70003
Помогите пожалуйста у меня при нажатии кнопки меню в планшете m70003 и при нажатии любых других кнопок выходит ошибка: произошла неожиданная остановка процесса android.process.acore Повторите попытку
Отобразить целочисленную переменную Android
Имею переменную int total, которую хочу отобразить в Edit. После cellsEditor.setText(total); приложение вылетает с неопределенной ошибкой. Так как если вместо total ввести текст в двойных кавычках, все работает, очевидно, что ошибка в несоответствии типа аргумента. Как правильно преобразовать int в строку?
Android "Hello, world" для Android в Eclipse http://www.cyberforum.ru/android-dev/thread318440.html
Поставил Eclipse, создал device, в проекте код: package com.example.android.apis; import android.app.Activity; import android.os.Bundle; import android.widget.TextView; public class HelloActivity extends Activity { /** Called when the activity is first created. */
Android Неизменяемые буквы в конце EditText Всем привет! Столкнулась с вот такой проблемкой. Во вложении картинка, которую мне нужно реализовать. Но вот вопрос, как сохранить эти неизменяемые буквы в конце EditText и как можно указать кол-во символов, которые допустимы, чтобы размер этого EditText был равен кол-ву этих букв? Когда я пишу android:layout_width="wrap_content" android:maxLength="8" растягивает на всю ширину экрана...... подробнее

Показать сообщение отдельно
Red Planet
49 / 10 / 2
Регистрация: 20.09.2009
Сообщений: 263

Казалось бы, эквивалентные if, но один работает, а второй нет - Android

21.06.2011, 17:38. Просмотров 1162. Ответов 1
Метки (Все метки)

Добрый день! Пишу свое посимвольное сравнение (условия задачи не позволяют equalsIgnoreCase применять). Проблема в том, что при сравнении игнорируется последний символ введенной строки (этот способ закомментирован), в незакомментированном все работает.

Например.
Введенная строка: And
Имена: Andrey, Anton
В список совпадающих вносится: Andrey.
Anton не вносится, так как третья буква t, а не d. Так и должно быть.

В неработающем if последняя буква введенной строки игнорируется.
Например.
Введенная строка: Anw
Имена: Andrey, Anton
В список совпадающих вносится: Andrey, Anton.

Код (неработающий if помечен красным, а работающий зеленым).
ArrayList<String> listOfEqs = new ArrayList<String>();
for (String t: listOfNames) {
int endOfStr = Math.min(etIn.getText().toString().length(), t.length());
int cntOfEqSimbs = 0;
for (int i=0; i<endOfStr; ++i) {
if (t.substring(i, i+1).equalsIgnoreCase(etIn.getText().toString().substring(i, i+1)) && !listOfEqs.contains(t)) {
cntOfEqSimbs++;
} // if.
if (cntOfEqSimbs==etIn.getText().toString().length()) listOfEqs.add(t);


/* if (!t.substring(i, i+1).equalsIgnoreCase(etIn.getText().toString().substring(i, i+1)) || listOfEqs.contains(t))
break;
// listOfEqs.add(t);

*/

} // nested for.
} // for.

twFound.setVisibility(0);
lvOfEqs.setAdapter(new ArrayAdapter<String>(this, android.R.layout.test_list_item, listOfEqs));
} // onClick.
listOfNames - массив строк, источник имен для сравнения.
listOfEqs - массив строк, в который вносятся совпадающие имена.
endOfStr - предел, до которого сравниваем (нужен, так как не знаем, что будет короче: имя или введенная строка.
etIn - EditText, в который вводится строка для сравнения с именем.
cntOfEqSimbs - счетчик совпадающих символов (нужен для отбраковки: если хотя бы одна буква не совпадет, то имя не будет внесено в список совпадающих).

Да, у меня есть работающий if, но неработающий нравится больше, так как там нет лишней переменной cntOfEqSimbs и второго if.

P.S. Не оформил код в нужные теги, так как при этом не получилось бы выделить цветом работающую и неработающую части.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru