Два счетчика показывают одинаковые записи

1

Я разрабатываю это приложение, и у одного из них есть два проигрывателя, и оба загружают одинаковые записи, даже я определил разные записи для каждого Spinner. Это довольно странно.

Вот код,

макет 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>

Настройки.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);

strings.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>

Я не вижу никаких ошибок, и он просто показывает одинаковые значения, хотя я использовал разные адаптеры.

Изображение 174551

Теги:
spinner
android-spinner
android-widget

1 ответ

4
Лучший ответ

Попробуйте изменить последнюю строку:

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 после вырезания и вставки.

  • 1
    О, как я глуп! Извините, я работал над этим часами, и мне это не хватало. Можете ли вы поверить, что я боролся больше часа, пытаясь понять, что пошло не так.
  • 1
    Нет проблем, мы все были там.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню