如何从android资源文件中的字符串中查找字符串名称

如何从android资源文件中的字符串中查找字符串名称,android,android-resources,Android,Android Resources,我想创建一个应用程序,当我们使用字符串搜索时,它可以从android中的资源文件中获取字符串名称。有什么方法吗? 假设我的strings.xml文件具有以下内容 你好,世界 现在我要做的是,当我在应用程序的搜索菜单中键入Hello world时,它应该返回abc作为字符串名。在活动中使用getResources().getString(R.string.yourstring)。字符串yourstring是在Strings.xml1中定义的。当您说“假设我的Strings.xml文件有以下内容”,

我想创建一个应用程序,当我们使用字符串搜索时,它可以从android中的资源文件中获取字符串名称。有什么方法吗? 假设我的strings.xml文件具有以下内容

你好,世界

现在我要做的是,当我在应用程序的搜索菜单中键入Hello world时,它应该返回abc作为字符串名。

在活动中使用
getResources().getString(R.string.yourstring)
。字符串
yourstring
是在
Strings.xml

1中定义的。当您说“假设我的Strings.xml文件有以下内容”,并且有一个“Hello world!”,这意味着您的
Strings.xml
看起来像:

<?xml version="1.0" encoding="utf-8"?>
<resources>

    <string name="hello_world">Hello world!</string>

</resources>  
3.根据您的要求,我建议您从
strings.xml
数组中获取所有
字符串
,并在其中运行搜索

要了解更多信息,请浏览:

->

->


->

您可以使用R.string上的反射来循环定义的字符串,如下所示:

for (Field field : R.string.class.getDeclaredFields())
{
    try {
        Log.i("Strings", String.format("String %s = %s", field.getName(),
                                       getResources().getString(field.getInt(field))));
    } catch (NotFoundException e) {
        e.printStackTrace();
    } catch (IllegalArgumentException e) {
        e.printStackTrace();
    } catch (IllegalAccessException e) {
        e.printStackTrace();
    }           
}

你是说?使用字符串搜索是什么意思?示例?如果我的xml资源文件有以下条目hello world,是否可以使用hello world获取res id name,即“abc”
for (Field field : R.string.class.getDeclaredFields())
{
    try {
        Log.i("Strings", String.format("String %s = %s", field.getName(),
                                       getResources().getString(field.getInt(field))));
    } catch (NotFoundException e) {
        e.printStackTrace();
    } catch (IllegalArgumentException e) {
        e.printStackTrace();
    } catch (IllegalAccessException e) {
        e.printStackTrace();
    }           
}