4

我想通过传递其值来获取字符串资源名称或 ID。
例子 :

    <string name="stringName">stringValue</string>

我想传递 stringValue 并获取 stringName 或 ID(id 值)

基于 ID,我将进行一些计算以获取另一个 String 资源的另一个 ID

4

2 回答 2

0

我不知道这是否可能,并且我认为如果新生成 R 类,ID 可能会在没有警告的情况下更改。你当然可以在这门课上尝试一些反射魔法,但我建议不要这样做。

于 2013-01-04T13:26:44.213 回答
0

我也有这个问题,可以想到两种可能的解决方法:

  • 将所有字符串及其名称加载到表中,然后查看表。
  • 或者循环浏览我的完整名称列表,获取每个名称的字符串资源,并将其与我已知的字符串资源进行比较。

我正在实施第二个,因为我的字符串资源列表不是很大,而且我不必经常执行此操作。一旦知道名称,就可以通过以下方式获取资源 ID:

//Get resource id from name
    var resourceId = (int) typeof (MyApp_droid.Resource.String).GetField(MyStringName).GetValue(null);

(代码是 C#,因为我在 Xamarin 中工作)。

于 2015-05-10T11:23:29.653 回答