Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何翻译ListView文本?_Java_Android_Android Listview - Fatal编程技术网

Java 如何翻译ListView文本?

Java 如何翻译ListView文本?,java,android,android-listview,Java,Android,Android Listview,我的android应用程序包括ListView与SimpleCursorAdapter绑定到数据库。此数据库包含列,其中包含以下数据 somenameofrow anothername thirdname 但是,我不想直接在列表视图中显示这些文本,而是想从Android资源中阅读相应的文本(实际上是翻译)。 我该怎么做 我想我可以使用setViewValue同样,下面代码中的name是TextView项,它显示我的文本: case R.id.name: TextView elName

我的android应用程序包括
ListView
SimpleCursorAdapter
绑定到数据库。此数据库包含列,其中包含以下数据

somenameofrow
anothername
thirdname
但是,我不想直接在
列表视图中显示这些文本,而是想从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()
)以及如何获取值


Upd.如果我从数据库中排除名称,并改用ID怎么办。它会有帮助吗?

不行,因为id是在编译过程中以某种基本随机的方式生成的,所以您无法确定哪个id将具有特定的
字符串
资源


我建议使用DB翻译,或者您可以阅读资产翻译

如果您阅读android指南,您会发现:

请注意,使用硬编码字符串数组不是最佳设计实践。为了简单起见,为了演示ListView小部件,本教程中使用了一个。更好的做法是引用由外部资源定义的字符串数组,例如使用项目res/values/strings.xml文件中的资源

只需在res/values XX中创建不同的
字符串数组
s项,其中XX是要转换的区域设置


有关资源和i18n的更多详细信息,请参阅《开发指南》:

关于getIdentifier()的内容是什么?可以用吗?如果数据库中有翻译,我如何理解应该使用哪种语言?@LA use Locale.getDefault()-了解当前设备中默认使用哪种语言。关于getIdentifier()-它与R.string相同。id@Aleadam谢谢我应该如何将这个
字符串数组
链接到数据库条目?@LA_u在我上面链接的教程中有一个工作示例。谢谢,@Aleadam。但是,我仍然不明白如何在SimpleCursorAdapter中使用这种方法,而不是在ArrayAdapter中使用这种方法(教程中给出了什么)。你能帮我一下吗?@LA_u你以
String[]myStrings=res.getStringArray(R.array.my_String_array)的形式检索资源。然后,您可以随意使用您的字符串数组(已经翻译成正确的语言)。@Aleadam,对不起,我还是不明白。目前我有以下代码:
String[]from=newstring[]{DbAdapter.KEY_TITLE,DbAdapter.KEY_TIME,DbAdapter.KEY_FAVORITE};int[]to=newint[]{R.id.name,R.id.time,R.id.icon};items=新的SimpleCursorAdapter(this,R.layout.row,myCursor,from,to)在此代码中我应该在哪里使用mystring?