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();

plsは私を助けます......

4

3 に答える 3

0

使ってください:

Spinner.getSelectedItemId() or
Spinner.getSelectedItemPosition()

選択したアイテムのインデックスを取得し、このインデックスを使用してサーバーに送信する英語の文字列を選択します。Spinnerローカライズされた文字列が引き続き入力される場合がありますが、サーバーデータは常に英語のままです(または、必要に応じて、インデックスを数値として送信することもできます)

于 2012-11-26T12:13:38.393 に答える
0

問題はフォルダの名前です。メインフォルダの名前は「values」(通常は英語)です。フォルダの名前は「values-tr」である必要があります。解決策は次のとおりです。1。「values-tr」という名前で/resフォルダーにフォルダーを作成します。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 に答える