我目前正在编写一个使用文件夹导航的安卓应用程序。我让用户从
String rootPath = Environment.getExternalStorageDirectory().getPath()
还有一个 currentPath 字符串,用于跟踪用户当前所在的目录。
用户可以在子文件夹中很好地导航,然后导航回根文件夹。
但是,程序似乎继续尝试在初始 rootPath 字符串下方导航,这意味着我的 if 语句if(currentPath != rootPath) {
似乎根本不起作用。我该如何解决这个问题?
我现在让程序工作只是因为我在此 if 语句之后有一个 try catch 代码块,该块未正确跳闸。
另外,我已经设置了 Logcat 消息来显示当前目录是什么,它显然与程序初始化时相同,那么为什么它不等于程序初始化时创建的 rootPath 字符串?
不要使用
if(currentPath != rootPath) {
以比较字符串。
您必须使用等于:
if( ! currentPath.equals(rootPath)) {
!= 运算符比较字符串对象的地址。 等于方法比较字符串的内容...
见 https://www.leepoint.net/data/expressions/22compareobjects.html