Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/227.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
Android字符串数组创建Id为的项_Android - Fatal编程技术网

Android字符串数组创建Id为的项

Android字符串数组创建Id为的项,android,Android,如何在android XML文件中创建如下选择列表: <select id="..t" name="..."> <option value="1">Excellent</option> <option value="2">Good</option> <option value="3">Average</option> <option value="4">Bad</opti

如何在android XML文件中创建如下选择列表:

<select id="..t" name="...">
   <option value="1">Excellent</option>
   <option value="2">Good</option>
   <option value="3">Average</option>
   <option value="4">Bad</option>
   <option value="5">Very Bad</option>
</select>
这个代码有效吗

<string-array name="...">
    <item value="10">Excellent</item>
    <item value="8">good</item>
    <item value="5">Average</item>
    ....
</string-array>

如果有效,如何在java代码中获取所选项的值?

您需要使用该方法,我认为value=在资源数组中无效

String[] arrayRes = getResources().getStringArray(R.array.*name of array*)

您可以在“活动”中调用getResources,但其他任何需要从上下文对象调用它的内容。

由于数组索引的范围总是从0到n-1 n=项计数,并且您只能在资源中定义一维向量,因此不能将索引用作值。 至少,如果这些值是用来表示自定义值的,则不是

但是您可以使用并行数组,并通过使用公共索引将值连接到描述

这与ListPreferences的工作原理非常相似:

android:entries="@array/prefs_send_titles"
android:entryValues="@array/prefs_send_values"
您的资源中有两个不同的数组:一个用于描述,另一个用于值

要从所选项目中获取值,请声明一个整数以保存该值:

int value = 0;
使用前面提到的开关。。。案例:


由于数组索引的范围总是从0到n-1 n=item count,如果这些值是自定义的,则不能将索引用作值。但是你可以使用一个并行数组,并使用一个公共索引将值连接到描述中。对不起,我刚刚开始使用android。你能解释一下如何做到这一点吗?此外,该值存储在我的数据库和web应用程序中,因此我如何处理该值?然后用相同的值创建相同的项目,就像web应用程序一样。这篇文章如何回答OP的问题?我想OP是指数组项目的值,我猜他是指值=值。正如您所评论的,他只需要使用并行数组。一个有值,一个有。对不起,我刚刚开始使用android。你能解释一下如何做到这一点吗?此外,该值存储在我的数据库和web应用程序中,因此我如何处理该值?并创建具有相同值的相同项,就像我看到的web应用程序一样。您可以从Web检索数字并将其存储在数据库中。因此,您无法将值与索引关联。您可以在代码中实现这一点。可能使用开关来确定根据值检索哪个字符串。这意味着对于每个微调器,我必须为要显示的项目创建一个数组android:entries,并为每个项目的值创建一个数组android:entryValues,这些数组必须按顺序排列?我有一个从web获取数据的APi,然后这些数据需要显示为微调器选择的项目不完全相同。对于微调器,只有一个数组。项目顺序给出了索引。正如我所建议的,您可以使用一个开关将索引与一个值相关联——或者反之亦然,对于相反的操作——从微调器返回一个值,或者从一个值显示微调器所选的项。
@Override
public void onItemSelected
(
    AdapterView<?> parent,View view, int position, long id
)
{
    int pos = mySpinner.getSelectedItemPosition();

    switch (pos)
    {
    case 0:
        value = 5;
        break;
    case 1:
        value = 8;
        break;
    case 2:
        value = 11;
        break;
    }
}
    try
    {
        int pos = 0;
        switch(value)
        {
            case 5:
                pos = 0;
                break;
            case 8:
                pos = 1;
                break;
            case 11:
                pos = 2;
                break;
        }
        mySpinner.setSelection(pos);
    }
    catch(final Exception e)
    {
        mySpinner.setSelection(0);
    }