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