2013-04-10 4 views
13

私はこれを動作させるために私の脳を頑張っています。私は1900年から今年までをスピンナーに動的に入力したいと思っています。私はこれはXML定義の配列を使用して行うことはできないと思うが、私は配列アダプタでそれを行うことができますか?ここで私はこれまで持っているものです。Androidでスピナーに年数を動的に設定しますか?

ArrayList<String> years = new ArrayList<String>(); 
int thisYear = Calendar.getInstance().get(Calendar.YEAR); 

for (int i = 1900; i <= thisYear; i++) 
{ 
    years.add(i); 
} 

adapter = new ArrayAdapter<String>(this, 
      android.R.layout.simple_spinner_item, years); 

//spinner to enter this list to 
spinYear = (Spinner)findViewById(R.id.yearspin); 

ここでスピナーのためのXMLです:任意のヘルプ

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

感謝。

+1

あなたのコードに '' spinYear.setAdapter(アダプタ)を追加する場合はどうなりますか? –

+0

あなたは死んでいます!ありがとう! – colmulhall

答えて

31

あなたはとても近くです。これを試してみてください:

ArrayList<String> years = new ArrayList<String>(); 
int thisYear = Calendar.getInstance().get(Calendar.YEAR); 
for (int i = 1900; i <= thisYear; i++) { 
    years.add(Integer.toString(i)); 
} 
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, years); 

Spinner spinYear = (Spinner)findViewById(R.id.yearspin); 
spinYear.setAdapter(adapter); 

あなたはちょうど私はそれはあなたを助けることを願っています

spinYear.setAdapter(adapter); 
+0

詳しくは、整数から '' Integer.toString(i); ''の文字列への変換が不足していて、 '' 'setAdapter()' '' – vincentjames501

+1

の呼び出しを忘れてしまって問題が解決しました!私がする必要があったのはアダプターをセットすることでした! * facepalm * – colmulhall

+0

@ vincentjames501現在の年を表示し、別の年が選択されている場合のみ変更するようにスピナーを設定するにはどうすればよいですか? –

6

を追加するのを忘れ。

static final String[] Months = new String[] { "January", "February", 
      "March", "April", "May", "June", "July", "August", "September", 
      "October", "November", "December" }; 

// Set years 
     ArrayList<String> years = new ArrayList<String>(); 
     int thisYear = Calendar.getInstance().get(Calendar.YEAR); 
     for (int i = 1900; i <= thisYear; i++) { 
      years.add(Integer.toString(i)); 
     } 
     ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, years); 

     Spinner spinYear = (Spinner)findViewById(R.id.spinnerYears); 
     spinYear.setAdapter(adapter); 
     // Set months 
     ArrayAdapter<String> adapterMonths = new ArrayAdapter<String>(this, 
       android.R.layout.simple_spinner_item, Months); 
     adapterMonths.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 

     Spinner spinMonths = (Spinner)findViewById(R.id.spinnerMonths); 
     spinMonths.setAdapter(adapterMonths); 
     // Set days 
     ArrayList<String> days = new ArrayList<String>(); 
     for (int i = 1; i <= 31; i++) { 
      days.add(Integer.toString(i)); 
     } 
     ArrayAdapter<String> adapterDays = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, days); 

     Spinner spinDays = (Spinner)findViewById(R.id.spinnerDays); 
     spinDays.setAdapter(adapterDays); 
関連する問題