我正在研究多语言用户界面。我的要求是在旋转器中我想用印地语显示数据,但是当它被选中时它应该返回英语节目,它可以与进一步的决策进行比较。就像带标签的标签一样。
我的java代码是这样的
HashMap<String,String> options=new HashMap<String,String>();
String optionsEnglish [] = getResources().getStringArray(R.array.option_array);
String optinsHindi[]= getResources().getStringArray(R.array.option_array_hindi);
for(int i=0;i<optionsEnglish.length;i++)
{
options.put(optionsEnglish[i], optinsHindi[i]);
}
Spinner optionSpinner = (Spinner) findViewById(R.id.optionPicker);
ArrayAdapter<HashMap<String, String>> dataAdapter = new ArrayAdapter<HashMap<String,String>>(this, android.R.layout.simple_spinner_item);
dataAdapter.add(options);
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
optionSpinner.setAdapter(dataAdapter);
在xml中
<resource>
<string-array name="option_array">
<item>Market</item>
<item>Commodity</item>
</string-array>
<string-array name="option_array_hindi">
<item>बाजार</item>
<item>वस्तु</item>
</string-array>
</resources>
答案 0 :(得分:3)
希望这可以帮到你
在 Spinner
中添加数据private void setDataInSpinner(Spinner id, int dataArray) {
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
this, dataArray, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_item);
id.setAdapter(adapter);
}
要获取Spinner的选定值,请使用此
Spinner mySpinner = (Spinner)findViewById(R.id.spinner);
String Text = mySpinner.getSelectedItem().toString();
或者您可以使用 setOnItemSelectedListener 来获取所选值
String value = GetClassCode.getCode(Text);//here u have to pass the value that is selected on the spinner
创建类
public class GetClassCode {
static HashMap<String, String> codeHash = new HashMap<String, String>();
static {
init();
}
public static void init() {
codeHash.put("key", "value");
codeHash.put("key", "value");
codeHash.put("key", "value");
codeHash.put("key", "value");
}
public static String getCode(String param) {
return codeHash.get(param);
}
}
答案 1 :(得分:2)
步骤1:创建 POJO 类,该类将处理键和值
font-size
第2步:准备要在微调器中加载的数据
input[type=text]{
/* Set width to 40characters */
width: 40ch;
/* prevent overflow of container */
max-width: 100%;
}
第3步:最后通过微调器的onitemselected侦听器方法获得所选项目的键和值
<input class="w3-input w3-border" name="lastName" type="text" id="myInput" onkeyup="myFunction()" placeholder="Search for last names.." title="Type in a last name">
答案 2 :(得分:1)
你为给定的xml中的语言单词创建了两个单独的字符串数组,对吗? 然后只需使用ArrayAdapter作为第一个选项数组并在spinner中设置适配器。并根据它从第二个字符串数组获取世界的位置选择任何微调器项。
它将非常简单,也适用于超过2种语言。
答案 3 :(得分:1)
我创建了一个可能有帮助的HashMap adapter。另请参见示例项目here
mapData = new LinkedHashMap<String, String>();
mapData.put("shamu", "Nexus 6");
mapData.put("fugu", "Nexus Player");
mapData.put("volantisg", "Nexus 9 (LTE)");
mapData.put("volantis", "Nexus 9 (Wi-Fi)");
mapData.put("hammerhead", "Nexus 5 (GSM/LTE)");
mapData.put("razor", "Nexus 7 [2013] (Wi-Fi)");
mapData.put("razorg", "Nexus 7 [2013] (Mobile)");
mapData.put("mantaray", "Nexus 10");
mapData.put("occam", "Nexus 4");
mapData.put("nakasi", "Nexus 7 (Wi-Fi)");
mapData.put("nakasig", "Nexus 7 (Mobile)");
mapData.put("tungsten", "Nexus Q");
adapter = new LinkedHashMapAdapter<String, String>(this, android.R.layout.simple_spinner_item, mapData);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner = (Spinner) findViewById(R.id.spinner);
spinner.setAdapter(adapter);
spinner.setOnItemSelectedListener(this);
答案 4 :(得分:0)
有点老问题,但这是从谷歌搜索时的最佳答案。
我使用了这种方法:
从微调器中获取本地化值:
String localizedValue = ((Spinner) findViewById(R.id.mySpinner)).getSelectedItem().toString();
然后从字符串资源文件中动态获取密钥:
String key = (String) getResources().getText(getResources().getIdentifier(localizedValue, "string", "my.package.name"));
所有语言都应包含strings.xml中的localizedValue的键:
बाजार=Market