0

我正在开发一个使用土耳其语的应用程序。当我以英语运行该应用程序时,该应用程序运行良好。现在,当我用土耳其语检查应用程序时,会出现错误结果。

我有一个数组资源

 <string-array name="pensionArr">// English(values-en)
    <item>monthly</item>
    <item>yearly</item>
</string-array>

<string-array name="pensionArr"> // Turkish(values-tr)
    <item>aylık</item>
    <item>yıllık</item>
</string-array>

我在微调器中设置了这个数组。

adapterPension = ArrayAdapter.createFromResource(this, R.array.pensionArr, android.R.layout.simple_spinner_item);

现在,我将从此微调器中选择的值发送到 Web 服务。我在那里比较英语的价值。

nameValuePairs.add(new BasicNameValuePair("pension_type",_pensiontype));

当我尝试打印值时_pensiontype。控制台中打印的值是这样的

yıllık//====> yearly in English.

因此,该值不在 Web 服务中进行比较。所以这是我的问题,即使我选择了土耳其语,如何使用英语值。有没有办法解决这个问题。

编辑:来自微调器的数据是

 _pensiontype=pensionTypeDrpgetSelectedItem().toString();

请帮助我......

4

3 回答 3

0

问题在于文件夹的名称。主文件夹的名称为“values”(通常为英文)。您的文件夹的名称应为:“values-tr”。解决方案是: 1. 在 /res 文件夹中创建名为“values-tr”的文件夹。2. 在其中创建文件 strings.xml 3. 将常量放入新文件中

于 2012-11-26T11:47:51.200 回答
0

这是非常棘手的情况。最后我在许多网站上搜索并找到了解决方案

将服务器端的阵列维护为

String[] arr = new String{"monthly","yearly"};

将资源数组设置为微调器后

adapterPension = ArrayAdapter.createFromResource(this, R.array.pensionArr, android.R.layout.simple_spinner_item);

现在我将所选项目的位置发送到服务器

nameValuePairs.add(new BasicNameValuePair("pension_type",Integer.toString(pensionDrp.getSelectedItemPosition())));

现在我得到了服务器端数组的位置。所以直接使用索引而不是值。

工作正常..

于 2012-11-29T10:27:15.687 回答
0

请用:

Spinner.getSelectedItemId() or
Spinner.getSelectedItemPosition()

获取所选项目的索引,并使用该索引选择要发送到服务器的英文字符串。Spinner仍然可以使用本地化字符串填充,但服务器数据始终保持为英文(或者您可以将索引作为数字发送,如果您愿意)

于 2012-11-26T12:13:38.393 回答