Android 微调器键和值

Android 微调器键和值,android,spinner,Android,Spinner,我正在创建一个翻译应用程序,其中用户需要选择目标语言,如果他从微调器中选择marathi,则marathi的值应为“mr”,以便我可以在url中传递该值。 我已经创建了一个微调器并从strings.xml分配了语言,但我想使用它的缩写形式,如印地语值应该是hi,我如何实现 <string-array name="languages"> <item>Marathi</item> <item>Hindi</item>

我正在创建一个翻译应用程序,其中用户需要选择目标语言,如果他从微调器中选择marathi,则marathi的值应为“mr”,以便我可以在url中传递该值。 我已经创建了一个
微调器
并从
strings.xml
分配了语言,但我想使用它的缩写形式,如
印地语
值应该是
hi
,我如何实现

    <string-array name="languages">
    <item>Marathi</item>
    <item>Hindi</item>
    <item>Japanese</item>
    <item>Russian</item>
    <item>Bengali</item>
    <item>Greek</item>
    <item>Gujarati</item>
    <item>Italian</item>
    <item>Malayalam</item>
    <item>German</item>
    <item>Punjabi</item>
    <item>Tamil</item>
    <item>Telugu</item>
    <item>French</item>
    <item>Urdu</item>
</string-array>

马拉提
印地语
日本人
俄语
孟加拉语
希腊人
古吉拉特邦
意大利人
马来亚拉姆
德国的
旁遮普
泰米尔人
泰卢固
法语
乌尔都语

您可以为上述功能创建地图对象。你可以创建这样的东西

Map<String, String> map = new HashMap<String, String>();
map.put("Hindi", "Hi");
map.put("Marathi", "Mi");
Map Map=newhashmap();
地图。put(“印地语”,“你好”);
地图放置(“马拉地”、“米”);
您可以根据需要颠倒键和值的顺序。要填充微调器,可以获取所有关键点并放入列表,然后将其添加到微调器中。你可以这样做

List<String> l = new ArrayList<String>(map.keySet());
listl=newarraylist(map.keySet());

您可以为上述功能创建地图对象。你可以创建这样的东西

Map<String, String> map = new HashMap<String, String>();
map.put("Hindi", "Hi");
map.put("Marathi", "Mi");
Map Map=newhashmap();
地图。put(“印地语”,“你好”);
地图放置(“马拉地”、“米”);
您可以根据需要颠倒键和值的顺序。要填充微调器,可以获取所有关键点并放入列表,然后将其添加到微调器中。你可以这样做

List<String> l = new ArrayList<String>(map.keySet());
listl=newarraylist(map.keySet());

我会选择地图

1-创建语言地图

Map<String, String> languages = new HashMap<>();
        languages.put("hindi", "hi");
        languages.put("arabic", "ar");
        languages.put("english", "en");

我会选择地图

1-创建语言地图

Map<String, String> languages = new HashMap<>();
        languages.put("hindi", "hi");
        languages.put("arabic", "ar");
        languages.put("english", "en");

实现这一点的一种方法是使用@Vivek Mishra(在评论中)建议的映射,其中键是要在微调器中显示的语言名称,值是要在URL中传递的语言代码

地图将如下所示

languageMap.put ("Marathi","mr");
languageMap.put ("Hindi","hi");
现在,当您想要使用时,从微调器中获取字符串,由用户选择,并通过获取语言代码值

languageMap.get("Marathi")
与当前实现集成的另一个选项是,按照与语言名称数组相同的顺序在String.xml中添加语言代码数组,并根据选定的微调器索引从语言代码数组中获取相同的索引

<string-array name="languages_code">
    <item>mr</item>
    <item>hi</item>
    <!-- Add entries for other languages -->
</string-array>

先生
你好

实现这一点的一种方法是使用@Vivek Mishra(在评论中)建议的映射,其中键是要在微调器中显示的语言名称,值是要在URL中传递的语言代码

地图将如下所示

languageMap.put ("Marathi","mr");
languageMap.put ("Hindi","hi");
现在,当您想要使用时,从微调器中获取字符串,由用户选择,并通过获取语言代码值

languageMap.get("Marathi")
与当前实现集成的另一个选项是,按照与语言名称数组相同的顺序在String.xml中添加语言代码数组,并根据选定的微调器索引从语言代码数组中获取相同的索引

<string-array name="languages_code">
    <item>mr</item>
    <item>hi</item>
    <!-- Add entries for other languages -->
</string-array>

先生
你好

您可以创建如下拖车列表

 List fullname= new ArrayList();
    fullname.add("hindia");
    fullname.add("persian");
    fullname.add("english");
 List urlName= new ArrayList();
    urlName.add("hin");
    urlName.add("per");
    urlName.add("eng");
然后将第一个添加到spiner

   ArrayAdapter dataAdapter = new ArrayAdapter(context, R.layout.spinner_dropdown, fullname);

    // Drop down layout style - list view with radio button
   // dataAdapter.setDropDownViewResource(R.layout.spinner_item);
    // attaching data adapter to spinner
    spinner.setAdapter(dataAdapter);
最后实现AdapterView.OnItemSelectedListener和
spinner.setOnItemSelectedListener(此)
要获得等效值,请使用以下代码:

@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, 
long l) {
   String  url=urlName.get(i);
}
@覆盖
已选择公共视图(AdapterView AdapterView、视图视图、int i、,
长(l){
字符串url=urlName.get(i);
}

您可以创建如下拖车列表

 List fullname= new ArrayList();
    fullname.add("hindia");
    fullname.add("persian");
    fullname.add("english");
 List urlName= new ArrayList();
    urlName.add("hin");
    urlName.add("per");
    urlName.add("eng");
然后将第一个添加到spiner

   ArrayAdapter dataAdapter = new ArrayAdapter(context, R.layout.spinner_dropdown, fullname);

    // Drop down layout style - list view with radio button
   // dataAdapter.setDropDownViewResource(R.layout.spinner_item);
    // attaching data adapter to spinner
    spinner.setAdapter(dataAdapter);
最后实现AdapterView.OnItemSelectedListener和
spinner.setOnItemSelectedListener(此)
要获得等效值,请使用以下代码:

@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, 
long l) {
   String  url=urlName.get(i);
}
@覆盖
已选择公共视图(AdapterView AdapterView、视图视图、int i、,
长(l){
字符串url=urlName.get(i);
}

您可以添加一个字符串数组,其短名称对应于您已有的语言数组,并使用“onItemSelected”中的位置获取短语言名称

以下是实现所需输出的最简单方法:

Strings.xml

    <string-array name="languages">
        <item name="">Marathi</item>
        <item>Hindi</item>
        <item>Japanese</item>
        <item>Russian</item>
        <item>Bengali</item>
        <item>Greek</item>
        <item>Gujarati</item>
        <item>Italian</item>
        <item>Malayalam</item>
        <item>German</item>
        <item>Punjabi</item>
        <item>Tamil</item>
        <item>Telugu</item>
        <item>French</item>
        <item>Urdu</item>
    </string-array>
<string-array name="sr_languages">
        <item name="">Ma</item>
        <item>Hi</item>
        <item>Ja</item>
        <item>Ru</item>
        <item>Be</item>
        <item>Gr</item>
        <item>Gu</item>
        <item>It</item>
        <item>Ma</item>
        <item>Ge</item>
        <item>Pu</item>
        <item>Ta</item>
        <item>Te</item>
        <item>Fr</item>
        <item>Ur</item>
    </string-array>

马拉提
印地语
日本人
俄语
孟加拉语
希腊人
古吉拉特邦
意大利人
马来亚拉姆
德国的
旁遮普
泰米尔人
泰卢固
法语
乌尔都语
文科硕士
你好
青年成就
茹
是
Gr
顾
信息技术
文科硕士
通用电气
聚氨基甲酸酯
助教
Te
Fr
乌尔
SpinnerActivity.java

package com.example.sonias.stackoverflowdemos;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;

import java.util.ArrayList;
import java.util.Arrays;

public class SpinnerActivity extends AppCompatActivity {
    private Spinner spLanguage;
    private ArrayAdapter<String> spAdapter;
    private String mSelectedLanguage = "";
    private ArrayList<String> LanguagesList;
    private ArrayList<String> srLanguagesList;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.spinner);
        spLanguage = (Spinner) findViewById(R.id.spLanguage);
        LanguagesList = new ArrayList<>(Arrays.asList(getResources().getStringArray(R.array.languages)));
        srLanguagesList = new ArrayList<>(Arrays.asList(getResources().getStringArray(R.array.sr_languages)));
        spAdapter = new ArrayAdapter<>(SpinnerActivity.this, android.R.layout.simple_list_item_1, LanguagesList);
        spLanguage.setAdapter(spAdapter);
        spLanguage.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                String mSelectedTExt = ((TextView) view.findViewById(android.R.id.text1)).getText().toString();
                mSelectedLanguage = srLanguagesList.get(position);
                Toast.makeText(SpinnerActivity.this, "You have selected " + mSelectedTExt + " ( " + mSelectedLanguage + " )", Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onNothingSelected(AdapterView<?> parent) {
            }
        });
    }
}
package com.example.sonias.stackoverflowdemos;
导入android.os.Bundle;
导入android.support.v7.app.AppActivity;
导入android.view.view;
导入android.widget.AdapterView;
导入android.widget.ArrayAdapter;
导入android.widget.Spinner;
导入android.widget.TextView;
导入android.widget.Toast;
导入java.util.ArrayList;
导入java.util.array;
公共类SpinGenerativity扩展了AppCompativity{
私人Spinner散斑语言;
专用阵列适配器spAdapter;
私有字符串mSelectedLanguage=“”;
私有ArrayList语言列表;
私有数组列表srLanguagesList;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.spinner);
spLanguage=(微调器)findViewById(R.id.spLanguage);
LanguagesList=newarraylist(Arrays.asList(getResources().getStringArray(R.array.languages));
srLanguagesList=newarraylist(Arrays.asList(getResources().getStringArray(R.array.sr_语言));
spAdapter=newArrayAdapter(spinneActivity.this,android.R.layout.simple\u list\u item\u 1,LanguagesList);
spLanguage.setAdapter(spAdapter);
sLanguage.setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView父视图、视图视图、整型位置、长id){
字符串mSelectedTExt=((TextView)view.findViewById(android.R.id.text1)).getText().toString();
mSelectedLanguage