从R.string获取TextView字符串ID

时间:2012-04-09 14:32:44

标签: android string textview

我想从显示它的TextView控件中找到与R.string文件中的字符串相关联的整数值。

所以,我有一个名为MyTextView的TextView,我将它的字符串关联为

MyTextView.setText(R.string.MyString);

现在,我想要的是创建一些函数,它给我MyTextView的字符串ID,类似于 GetStringId(MyTextView)。也许TextView包已经实现了,我找不到它。

感谢您的帮助

2 个答案:

答案 0 :(得分:1)

要向您的应用添加多个翻译,您应该使用“language-qualified-resources”,如Android Docs所述。

基本上,您将后备语言(通常是英语)的字符串添加到res/values/strings.xml - 文件中。

任何其他翻译(例如西班牙语)都会使用给定的语言限定符(在ISO 639-1中指定)进入他们的language-qualified-resource目录。对于西班牙语,这将是res/values-es/strings.xml

然后,Android检查当前的设备语言,使用相应的语言限定符搜索任何翻译,并自动使用该文件中指定的字符串。如果找不到具有相应语言限定符的任何文件夹,则使用没有限定符的文件夹(例如“后备” - 语言)。

这是来自Android的服务,您只需将相应的翻译放在相应的语言限定文件夹中,Android就会为您完成剩下的工作。

另请参阅此问题:internationalisation in android

答案 1 :(得分:1)

您可以轻松实现自己的功能,将文本设置为可以执行所需操作的TextView。只需执行以下操作:

    textview.setText(R.string.my_text);
    textview.setTag(new Integer(R.string.my_text));

在设置文本的函数中,然后在第二个函数中(用于获取字符串ID)执行以下操作:

    return ((Integer)textview.getTag()).intValue();

阅读以下两个功能的文档:

  

http://developer.android.com/reference/android/view/View.html#setTag()   http://developer.android.com/reference/android/view/View.html#getTag()