Android Если еще ошибка условия - PullRequest
0 голосов
/ 31 мая 2011

Я не знаю, почему следующая кодировка всегда возвращает ложь, даже если она ИСТИННА.То, что я сравниваю, это результат ввода пользователем текста в строковой переменной «classNameGlobal» и второй результат запроса к БД, в результате чего получено строковое значение из столбца таблицы.Всякий раз, когда я запускаю управление, переключается в другое состояние, не запуская if part -.-

Пожалуйста, посмотрите.

String result[];
result = new String[cursor.getCount() - 1];
int i = 0;
while (cursor.moveToNext()) {
        result[i] = cursor.getString(cursor.getColumnIndex("name"));
        i++;
    }

 classNameGlobal = className.getText().toString().toUpperCase().trim();

Примечание. Все, если приведенный выше код написан методом onclick, за исключением объявления этого массива результатов.Кроме того, я использую тот же метод для хранения строки в базе данных, т.е. я преобразую ее в верхний регистр, а затем запускаю все лишние пробелы !!!Даже когда я сбрасываю результаты запроса и тат, пользователь вводит строку.Оба одинаковы.СЕЙЧАС почему я всегда продолжаю запускать эту часть, а не часть if -.- Метод, который я использую для сравнения результатов запроса к базе данных и введенной пользователем строки:

 for (int b = 0; b < result.length; b++) {

                if (classNameGlobal == result[b]) {
                    Log.d(TAG, "Inside if condition now : " + result[b] + " \t" + classNameGlobal);

                    db.execSQL("drop table if exists " + classNameGlobal);

                    /* Deleting Code File */
                    this.deleteFile(classNameGlobal + ".txt");

                    Toast.makeText(
                            this,
                            classNameGlobal + " Database Dropped Successfully ",
                            Toast.LENGTH_SHORT).show();

                    break;

                } else {
                    Toast.makeText(
                            this,
                            "No Such Database Exists",
                            Toast.LENGTH_SHORT).show();

                }

            }

Ответы [ 2 ]

5 голосов
/ 31 мая 2011

В Java сравните содержимое строки с помощью метода equals. Сравнение с оператором == просто проверяет, указывают ли две ссылки на один и тот же объект.

Итак, измени

classNameGlobal == result[b]

до

classNameGlobal.equals(result[b])
1 голос
/ 31 мая 2011

Используйте if (classNameGlobal.equals(result[b])) { вместо ==.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...