2012-06-26 2 views
1

이 앱을 개발 중이며 활동 중 하나에 두 개의 스피너가 있으며 둘 다 동일한 항목을로드합니다. 각 스피너마다 다른 항목을 정의 했더라도. 이것은 다소 이상한 일입니다. 여기 두 개의 스피너가 동일한 항목을 표시합니다.

는 코드

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); 

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> 

아무런 표시가 없습니다. 다른 어댑터를 사용하더라도 동일한 값을 표시합니다.

enter image description here

답변

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를 설정하는 것을 알하지 않았다 생각을 회 전자 후 잘라 & 붙여 넣기.

+1

아, 얼마나 어리석은 지요! 죄송합니다. 몇 시간 동안이 작업을하고 있었는데 놓쳤습니다. 무엇이 잘못되었는지 알아 내려고 1 시간 이상 고생했다고 믿을 수 있습니까? –

+0

아무런 문제가 없습니다. – Sam

관련 문제