我想创建一个应用程序,它可以从android中的资源文件中获取字符串名称,当我们使用string.Is搜索时有任何方法吗? 假设我的strings.xml文件有以下内容如何从android资源文件中的字符串查找字符串名称
Hello world!
现在我想要做的是当我在我的应用程序的搜索菜单中键入Hello world时,它应该返回abc作为字符串名称。
我想创建一个应用程序,它可以从android中的资源文件中获取字符串名称,当我们使用string.Is搜索时有任何方法吗? 假设我的strings.xml文件有以下内容如何从android资源文件中的字符串查找字符串名称
Hello world!
现在我想要做的是当我在我的应用程序的搜索菜单中键入Hello world时,它应该返回abc作为字符串名称。
在您的活动中使用getResources().getString(R.string.yourstring)
。字符串yourstring
在Strings.xml
中定义。
1.当你说: “假如我的strings.xml文件有以下”,并有一个,这将意味着你strings.xml
会是什么样子的 “Hello world!”:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello_world">Hello world!</string>
</resources>
这意味着在您的应用的资源中定义了字符串,可以通过导入yourpackage.R
来使用这些字符串 - 编译器将如何识别R
中的值。
那么值为“Hello world!”的字符串的名称是什么?在你的XML?
2.要获得该值,你可以使用:
getResources.getString(R.string.stringNameHere);
3.并按照您的要求,我建议你从你strings.xml
所有strings
在数组并通过它来运行搜索。
为了更多地了解这一切,请经过:
- >http://developer.android.com/guide/topics/resources/string-resource.html
- >https://developer.android.com/samples/BasicNetworking/res/values/strings.html
您可以通过使用反射定义的字符串循环对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();
}
}
你的意思是[''Context.getString(int resId)'](http://developer.android.com/guide/topics/resources/string-resource.html)? *您使用String *进行搜索是什么意思?例? –
如果我的xml资源文件包含以下条目 hello world 。是否可以使用hello world获取res id name,即“abc” –
user3413619