2015-09-19 59 views
0

我正在嘗試在我的Android活動上渲染兩個spinners。他們都必須從string.xml資源文件中獲取其項目值。試圖渲染兩個spinners會導致一個不工作

這裏是我的代碼看起來像現在:

@OptionsMenu(R.menu.menu_helper) 
@EActivity(R.layout.activity_helper) 
public class HelperActivity extends AppCompatActivity { 

    @ViewById(R.id.cultureSpinner) 
    Spinner cultureSpinner; 
    @ViewById(R.id.harvestSpinner) 
    Spinner harvestSpinner; 

    ArrayAdapter<CharSequence> adapter; 

    @AfterViews 
    public void initialize() { 
     initializeSpinners(); 
    } 

    public void initializeSpinners() { 
     adapter = ArrayAdapter.createFromResource(this, R.array.cultures, android.R.layout.simple_spinner_item); 
     adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
     cultureSpinner.setAdapter(adapter); 

     adapter = ArrayAdapter.createFromResource(this, R.array.harvestValues, android.R.layout.simple_spinner_item); 
     adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
     cultureSpinner.setAdapter(adapter); 
    } 
} 

風格的xml:

<?xml version="1.0" encoding="utf-8"?> 
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
      android:layout_width="fill_parent" 
      android:layout_height="0dp" 
      android:layout_weight="0.55" 
      android:fillViewport="true" 
      android:orientation="vertical" 
      android:showDividers="beginning|end" 
    > 

    <TableLayout 
     android:id="@+id/tableLayout" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:clickable="true" 
     android:focusable="true" 
     android:focusableInTouchMode="true" 
     android:padding="10dip" 
     > 

     <TableRow 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      > 

      <Spinner 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:id="@+id/cultureSpinner" 
       android:spinnerMode="dropdown" 
       /> 
     </TableRow> 

     <Space 
      android:layout_height="3dp"/> 

     <TableRow 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      > 

      <Spinner 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:id="@+id/harvestSpinner" 
       android:spinnerMode="dropdown" 
       /> 
     </TableRow> 
    </TableLayout> 
</ScrollView> 

現在,當我開始練習,第二微調是第一個和第一之前顯示現在由於某種原因,現在在第二個之下的微調器不起作用。如果我按下它,下拉菜單不會出現。

這裏有什麼問題?

回答

1
public void initializeSpinners() { 
     adapter = ArrayAdapter.createFromResource(this, R.array.cultures, android.R.layout.simple_spinner_item); 
     adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
     cultureSpinner.setAdapter(adapter); 

     adapter1 = ArrayAdapter.createFromResource(this, R.array.harvestValues, android.R.layout.simple_spinner_item); 
     adapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 
     harvestSpinner.setAdapter(adapter1); 
    } 

試試吧。希望它的工作。

+0

似乎它的工作。謝謝! – Kaspar

+0

將第二個重命名爲'adapter1'不會在運行時改變任何東西,是嗎? –

+0

是的。您必須爲不同的spinners使用兩個不同的適配器 –