Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/325.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 微调器字符串项值获取(非字符串名称)android_Java_Android_String_Android Layout_Android Activity - Fatal编程技术网

Java 微调器字符串项值获取(非字符串名称)android

Java 微调器字符串项值获取(非字符串名称)android,java,android,string,android-layout,android-activity,Java,Android,String,Android Layout,Android Activity,我在strings.xml中使用 <string-array name="country_arrays"> <item value="0">ValueName0</item> <item value="1">ValueName1</item> <item value="2">ValueName2</item> <item value="3">ValueName3<

我在strings.xml中使用

<string-array name="country_arrays">
    <item value="0">ValueName0</item>
    <item value="1">ValueName1</item>
    <item value="2">ValueName2</item>
    <item value="3">ValueName3</item>
    <item value="4">ValueName4</item>
</string-array>
如果用户选择ValueName3,则结果显示ValueName3 但我想显示的是价值而不是价值名


如果用户选择ValueName2,则结果显示:2尝试这种方法,希望这将帮助您解决问题。

strings.xml

<array name="country_arrays">
    <item>ValueName0</item>
    <item>ValueName1</item>
    <item>ValueName2</item>
    <item>ValueName3</item>
    <item>ValueName4</item>
</array>

<array name="country_value_arrays">
    <item>0</item>
    <item>1</item>
    <item>2</item>
    <item>3</item>
    <item>4</item>
</array>

private ArrayList<String> countryList;
private ArrayList<String> countryValueList;

countryList = new ArrayList<String>(Arrays.asList(getResources().getStringArray(R.array.country_arrays)));
countryValueList = new ArrayList<String>(Arrays.asList(getResources().getStringArray(R.array.country_value_arrays)));

option.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                  Toast.makeText(AvpMain.this,"Loading Wait : " + "\n Search : "+ sbox1 + "\n("+countryValueList.get(position)+") Result",Toast.LENGTH_SHORT).show();
            }

            @Override
            public void onNothingSelected(AdapterView<?> parent) {

            }
        });

您必须实现微调器的onItem Selected Listner

Try this
Spinner spinner;
        spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

            @Override
            public void onItemSelected(AdapterView<?> parent, View view,
                    int position, long id) {
                // TODO Auto-generated method stub

                Toast.makeText(AvpMain.this,
                          "Loading Wait : " + "\n Search : " + 
                          "\n("+positoin") Result",
                          Toast.LENGTH_SHORT).show();

            }

            @Override
            public void onNothingSelected(AdapterView<?> parent) {
                // TODO Auto-generated method stub

            }
        });
试试这个
纺纱机;
spinner.setOnItemSelectedListener(新的AdapterView.OnItemSelectedListener(){
@凌驾
已选择公共视图(AdapterView父视图、视图、,
内部位置,长id){
//TODO自动生成的方法存根
Toast.makeText(AvpMain.this,
加载等待:“+”\n搜索:“+
“\n(“+positoin”)结果”,
吐司。长度(短)。show();
}
@凌驾
未选择公共无效(AdapterView父级){
//TODO自动生成的方法存根
}
});

您需要创建两个阵列:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="countries">
        <item>Portugal</item>
        <item>France</item>
        <item>Spain</item>
    </string-array>
    <string-array name="countries_codes">
        <item>340</item>
        <item>250</item>
        <item>134</item>
    </string-array>
</resources>
您只需在onItemSelected()方法中获取相应的项名称和值,如下所示:

String country = parent.getItemAtPosition(pos).toString();
String value = countries_codes [pos];

选项是什么?一个微调器,一个列表视图?您是否尝试过
getSelectedItemId()
?我认为这对于字符串数组来说是无效的语法。在使用两个列表的地方查看答案,这是实现所需目标的唯一方法。就我个人而言,我会为此使用枚举。谢谢(Sagar Pilkhwal)现在的结果是值id+1。这将给出最后一个数字,好的。但若值不是字符串的最后一位呢?那个么您必须尝试以下方法:AdapterView和SetOnItemSelectedListener上的错误确保您已找到微调器的do findviewbyid。
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="countries">
        <item>Portugal</item>
        <item>France</item>
        <item>Spain</item>
    </string-array>
    <string-array name="countries_codes">
        <item>340</item>
        <item>250</item>
        <item>134</item>
    </string-array>
</resources>
String countries [] = getResources().getStringArray(R.array.counties);
String countries_codes [] =  getResources().getStringArray(R.array.countries_codes);
String country = parent.getItemAtPosition(pos).toString();
String value = countries_codes [pos];