2013-04-10 35 views
13

Tôi đã được bộ não của tôi cố gắng để có được điều này để làm việc. Tôi muốn tự động nhập vào năm từ năm 1900 đến năm hiện tại vào một spinner. Tôi không nghĩ rằng điều này là có thể làm bằng cách sử dụng một mảng XML được xác định nhưng tôi có thể làm điều đó với một bộ chuyển đổi mảng? Dưới đây là những gì tôi có cho đến nay:Dân số quay số theo năm tự động trong 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); 

Đây là XML cho spinner:

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

Cảm ơn sự giúp đỡ nào.

+1

gì xảy ra khi bạn thêm 'spinYear.setAdapter (adapter) 'để mã của bạn? –

+0

Bạn đã chết ngay! Cảm ơn! – colmulhall

Trả lời

31

Bạn đang ở rất gần. Hãy thử điều này:

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

Bạn chỉ cần quên để thêm

spinYear.setAdapter(adapter); 
+0

Để xây dựng, bạn đã bỏ lỡ chuyển đổi từ một số nguyên thành một chuỗi với '' 'Integer.toString (i);' '' và bạn đã quên cuộc gọi của bạn thành '' 'setAdapter()' '' – vincentjames501

+1

Tuyệt vời đã giải quyết được vấn đề ! Tất cả những gì tôi cần làm là đặt bộ điều hợp! * facepalm * – colmulhall

+0

@ vincentjames501 làm cách nào tôi có thể đặt trình xoay tròn để hiển thị năm hiện tại và chỉ thay đổi nếu một năm khác được chọn? –

6

Tôi hy vọng nó sẽ giúp bạn.

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); 
Các vấn đề liên quan