【问题标题】:Two spinners show same entries两个微调器显示相同的条目
【发布时间】:2012-06-28 07:39:40
【问题描述】:

我正在开发这个应用程序,其中一个活动有两个微调器,并且都加载相同的条目,即使我为每个微调器定义了不同的条目。这是一件很奇怪的事情。

这是代码,

main.xml 布局(部分 0f 布局)

<TableRow
        android:id="@+id/settings_color_row"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingTop="10dp" >

        <TextView
            android:id="@+id/settings_color_text"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_span="0"
            android:gravity="left"
            android:paddingLeft="7dp"
            android:paddingTop="13dp"
            android:text="Color"
            android:textSize="18dp"
            android:textStyle="bold"
            android:typeface="serif" >
        </TextView>

        <Spinner
            android:id="@+id/settings_color_spinner"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"

             />
    </TableRow>

    <TableRow
        android:id="@+id/settings_background_row"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:paddingTop="10dp" >

        <TextView
            android:id="@+id/settings_background_text"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_span="0"
            android:gravity="left"
            android:paddingLeft="7dp"
            android:paddingTop="13dp"
            android:text="Skin"
            android:textSize="18dp"
            android:textStyle="bold"
            android:typeface="serif" >
        </TextView>

        <Spinner
            android:id="@+id/settings_background_spinner"
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"

             />
    </TableRow>

Settings.java(活动)

    colors_spinner = (Spinner)findViewById(R.id.settings_color_spinner);
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
            R.array.colors_array, android.R.layout.simple_spinner_item);
    // Specify the layout to use when the list of choices appears
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    // Apply the adapter to the spinner
    colors_spinner.setAdapter(adapter);

    skin_spinner = (Spinner)findViewById(R.id.settings_background_spinner);
    ArrayAdapter<CharSequence> skin_adapter = ArrayAdapter.createFromResource(this,
            R.array.background_array, android.R.layout.simple_spinner_item);
    // Specify the layout to use when the list of choices appears
    skin_adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    // Apply the adapter to the spinner
    colors_spinner.setAdapter(skin_adapter);

字符串.xml

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

<string name="hello">Hello World, Settings!</string>
<string name="app_name">Shared Preferences Test</string>

<string-array name="colors_array">
    <item>White</item>
    <item>Red</item>
    <item>Blue</item>
    <item>Pink</item>
</string-array>

<string-array name="background_array">
    <item>Red-Nosed Reindeer</item>
    <item>Snowman</item>
</string-array>

</resources>

我没有看到任何错误,即使我使用了不同的适配器,它也只是显示相同的值。

【问题讨论】:

    标签: java android android-widget spinner android-spinner


    【解决方案1】:

    尝试更改最后一行:

    skin_spinner = (Spinner)findViewById(R.id.settings_background_spinner);
    ArrayAdapter<CharSequence> skin_adapter = ArrayAdapter.createFromResource(this,
            R.array.background_array, android.R.layout.simple_spinner_item);
    // Specify the layout to use when the list of choices appears
    skin_adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    // Apply the adapter to the spinner
    colors_spinner.setAdapter(skin_adapter);
    

    到这里:

    skin_spinner.setAdapter(skin_adapter); // not colors_spinner
    

    我相信您只是没有注意到您在剪切和粘贴后将 skin_adapter 设置为错误的 Spinner。

    【讨论】:

    • 哦,我是多么愚蠢!抱歉,我已经为此工作了几个小时,但我错过了,你能相信我挣扎了一个多小时试图找出问题所在。
    • 没问题,我们都去过那里。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多