我的android应用程序包括与SimpleCursorAdapter
绑定到数据库的ListView
。此数据库包含列,其中包含类似的数据
somenameofrow
anothername
thirdname
然而,我不想直接在ListView
中显示这些文本,而是想从Android资源中阅读相应的文本(实际上是翻译)。我该怎么做?
我认为我可以使用setViewValue
,下面代码中的name
是TextView
项,它显示我的文本:
case R.id.name:
TextView elName = (TextView) view;
elName.setText(getApplicationContext().getString(R.string.));
return true;
我不知道如何理解我正在寻找的资源的正确id(可能是cursor.getString(columnIndex)
或elName.getText()
),以及如何获得值?
上升如果我从数据库中排除名称并使用id会怎样。这会有帮助吗?
如果你阅读android指南ListView教程,你会发现:
请注意,使用硬编码字符串数组不是最佳设计实践。为了简单起见,本教程中使用了一个来演示ListView小部件。更好的做法是引用由外部资源定义的字符串数组,例如使用项目res/values/strings.xml文件中的资源
只需在res/values XX中创建不同的string-array
项,其中XX是要翻译的语言环境。
有关资源和i18n的更多详细信息,请参阅开发指南:http://developer.android.com/guide/topics/resources/localization.html
不可以,因为id在编译过程中是以某种基本上是随机的方式生成的,所以您不能确定哪个id将具有特定的String
资源。
我建议使用DB的翻译,或者您可以阅读资产的翻译