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