Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 比照IgnoreCase不';不能使用Strings.xml_Android_Xml - Fatal编程技术网

Android 比照IgnoreCase不';不能使用Strings.xml

Android 比照IgnoreCase不';不能使用Strings.xml,android,xml,Android,Xml,在我的代码中,我有一个安装在设备上的所有应用程序的数组,我想在其中找到自己正在运行的应用程序。为此,我编写了以下代码: if (tmpPacs[I].packageName.compareToIgnoreCase("com.example.basiclauncher") == 0){ launcherPosition = I; } 这行代码工作得很好,但是,我想将com.example.basiclauncher“存储在strings.xml中的字符串中,如下所示: <strin

在我的代码中,我有一个安装在设备上的所有应用程序的数组,我想在其中找到自己正在运行的应用程序。为此,我编写了以下代码:

if (tmpPacs[I].packageName.compareToIgnoreCase("com.example.basiclauncher") == 0){
    launcherPosition = I;
}
这行代码工作得很好,但是,我想将com.example.basiclauncher“存储在strings.xml中的字符串中,如下所示:

<string name="launcher_package">com.example.basiclauncher</string>
这不起作用,launcherPosition在整个代码执行过程中保持0,并且找不到正确的应用程序。当我回到第一行时,应用程序再次被找到。为什么会这样?如何使用strings.xml文件来实现这一点

编辑:


我刚刚意识到我试图在java类中使用xml代码,这显然是行不通的。感谢您的快速回复,getPackageName()是一个更加优雅的解决方案

要从xml中检索字符串,必须使用
getResources().getString(R.string.launcher\u包)
。您还可以通过
getPackageName()

检索包名。要从xml检索字符串,必须使用
getResources().getString(R.string.launcher\u package)
。您还可以通过
getPackageName()

检索包名。您不能使用
“@string/launcher\u package”

试试这个:

tmpPacs[I].packageName.compareToIgnoreCase(
              getResources().getString(R.string. 
                                        launcher_package))
希望这有帮助。

您不能使用
“@string/launcher\u package”

试试这个:

tmpPacs[I].packageName.compareToIgnoreCase(
              getResources().getString(R.string. 
                                        launcher_package))
希望这能有所帮助。

您需要这样做

tmpPacs[1].packageName.compareToIgnoreCase(getResources().getString(R.string.launcher_package))

您的代码实际上是将tmpPacs[I].packageName与字符串“@string/launcher\u package”进行比较,而不是与它所引用的字符串资源进行比较。

您需要这样做

tmpPacs[1].packageName.compareToIgnoreCase(getResources().getString(R.string.launcher_package))

您的代码实际上是将tmpPacs[I].packageName与字符串“@string/launcher\u package”进行比较,而不是将其引用的字符串资源进行比较