Ошибка при сравнении существующей строки с Environment.getExternalStorageDirectory (). GetPath () - PullRequest
0 голосов
/ 28 мая 2018

В настоящее время я пишу приложение для Android, которое использует навигацию по папкам.У меня пользователь запускается в

String rootPath = Environment.getExternalStorageDirectory().getPath()

, а также в строке currentPath, которая отслеживает каталог, в котором находится пользователь.

, и пользователь может очень просто перемещаться по подпрограммепапки и перейдите обратно в корневую папку.

Однако программа, похоже, продолжает пытаться перемещаться ниже начальной строки rootPath. Это означает, что мой оператор if для if(currentPath != rootPath) {, похоже, не работает навсе.Как я могу это исправить?

У меня есть программа, работающая сейчас только потому, что у меня есть блок try catch для кода после этого оператора if, который неправильно отключается.

Кроме того, я настроил сообщения Logcat для отображениячто такое текущий каталог, и он явно совпадает с тем, что был при инициализации программы, так почему он не равен строке rootPath, созданной при инициализации программы?

1 Ответ

0 голосов
/ 28 мая 2018

Не используйте

if(currentPath != rootPath) {

для сравнения строк.

Вы должны использовать равно:

if( ! currentPath.equals(rootPath)) {

! = Оператор сравнивает адреса объектов строк.Метод equals сравнивает содержимое строк ...

см. https://www.leepoint.net/data/expressions/22compareobjects.html

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