在xml中填充的Spinner显示为空(Android)

时间:2013-08-24 12:39:51

标签: android xml android-layout android-spinner

我有三个微调器,两个来自代码,第三个来自XML arrays.xml。第三个没有显示任何标签,只显示每个项目的空行。

我在Logcat中遇到的错误:

W / ResourceType(22121):无法在包0中输入0x010802c8(t = 7 e = 712)(错误-75)

但我不知道怎么处理这条线......我之前做了xml填充的旋转器,他们没事,我不知道我做错了什么......

我的布局:

    <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >


    <TextView
        android:id="@+id/text_from"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/text_from" />

    <Spinner
        android:id="@+id/spinner_start"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/text_from"  />

    <TextView
        android:id="@+id/text_length"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/text_length"
        android:layout_below="@id/spinner_start" />

    <Spinner
        android:id="@+id/spinner_length"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:entries="@array/length_value"
        android:entryValues="@array/length_value"
        android:defaultValue="10"
        android:layout_below="@id/text_length"  />

    <CheckBox
        android:id="@+id/check_from_lesson"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/check_from_lesson"
        android:layout_below="@id/spinner_length" />

    <Spinner
        android:id="@+id/spinner_lesson"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/check_from_lesson" />

    <Button
        android:id="@+id/button_select_from_list"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/button_select"
        android:layout_below="@id/spinner_lesson" />

    <Button
        android:id="@+id/button_ok"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/button_ok"
        android:layout_below="@id/spinner_lesson"
        android:layout_toRightOf="@id/button_select_from_list"
        android:onClick="onOkButtonPress" />


</RelativeLayout>

我的arrays.xml:

    <?xml version="1.0" encoding="utf-8"?>
<resources>

    <array name="length_value">
        <item>5</item>
        <item>10</item>
        <item>15</item>
        <item>20</item>
        <item>25</item>
   </array>
</resources>

我的代码调用布局并填充其他2个微调器:

public void setTestParams() {

        setContentView(R.layout.main_popup_layout);
        sp_lesson = (Spinner)findViewById(R.id.spinner_lesson);     
        Spinner sp_start = (Spinner)findViewById(R.id.spinner_start);
        sp_lesson.setEnabled(false);

        List<String> lessons = new ArrayList<String>();
        List<String> start = new ArrayList<String>();
        lessons=getLessons();
        start=getStart();

        ArrayAdapter<String> spAdapterStart = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, start);
        ArrayAdapter<String> spAdapterLessons = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, lessons);

        spAdapterStart.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spAdapterLessons.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        sp_start.setAdapter(spAdapterStart);
        sp_lesson.setAdapter(spAdapterLessons);


        spAdapterLessons.notifyDataSetChanged();
        spAdapterStart.notifyDataSetChanged();

        final CheckBox cb_lesson = (CheckBox)findViewById(R.id.check_from_lesson);
        cb_lesson.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                if(cb_lesson.isChecked()){
                    sp_lesson.setEnabled(true);
                }else{
                    sp_lesson.setEnabled(false);
                }
            }
        });


    }

3 个答案:

答案 0 :(得分:1)

您从资源中获取数据但无法找到数据的Spinner

然后你应该添加:

 android:entries="@array/length_value"

到xml文件中的 Spinner ...

并将其更改为:

<string-array name="length_value">
    <item>5</item>
    <item>10</item>
    <item>15</item>
    <item>20</item>
    <item>25</item>
</string-array>

答案 1 :(得分:0)

试试这个,

Resources res = getResources();
apModeAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, res.getStringArray(R.array.anti_pump_ap_mode_array) );

答案 2 :(得分:0)

试试这个:

<string-array name="length_value">
        <item>5</item>
        <item>10</item>
        <item>15</item>
        <item>20</item>
        <item>25</item>
    </string-array>