2017-04-19 69 views
-1

我希望有一个动态值为1-12,第1-31天以及从1917年到今年的月份的微调。Android Spinner使用循环的动态值

<LinearLayout 
     android:orientation="horizontal" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content"> 

    <Spinner 
     android:id="@+id/spinner_Month" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" /> 
    <Spinner 
     android:id="@+id/spinner_Day" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" /> 
    <Spinner 
     android:id="@+id/spinner_Year" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" /> 
</LinearLayout> 


    List year = new ArrayList<Integer>(); 
    for (int i = 1917; i <= "IwantThisTobeInCurrentYear - 18"; i++) { 
     year.add(Integer.toString(i)); 
    } 
    ArrayAdapter<Integer> spinnerArrayAdapter = new ArrayAdapter<Integer>(
      this, android.R.layout.simple_spinner_item, year); 
    spinnerArrayAdapter.setDropDownViewResource( 
    android.R.layout.simple_spinner_dropdown_item); 

    Spinner spinner = (Spinner)findViewById(R.id.years_spinner); 
    spinner.setAdapter(spinnerArrayAdapter); 

和里面的for循环我想这是本年度 - 18避免不到18 ,我想为默认值设置为一年或YYYY

+0

请出示完整的代码。 –

回答

1

尝试使用DatePickerDialog代替。

1.创建按钮DatePickerDialog.OnDateSetListener

DatePickerDialog.OnDateSetListener datePickerListener = new DatePickerDialog.OnDateSetListener() { 

    @Override 
    public void onDateSet(DatePicker view, int year, int monthOfYear, 
          int dayOfMonth) { 

     Calendar calendar = Calendar.getInstance(); 
     calendar.set(Calendar.YEAR, year); 
     calendar.set(Calendar.MONTH, monthOfYear); 
     calendar.set(Calendar.DAY_OF_MONTH, dayOfMonth); 

     String dateFormat = "MM/dd/yy"; //Change date format if required 
     SimpleDateFormat sdf = new SimpleDateFormat(dateFormat, Locale.ENGLISH); 

     String dateStr = sdf.format(calendar.getTime()); 

     EditText editText = null; //initialize edit text here 
     editText.setText(dateStr); 
     //use this date 
    } 

}; 

2.显示的日期选择器点击等

button.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 

     Calendar calendar = Calendar.getInstance(); 

     DatePickerDialog datePickerDialog =new DatePickerDialog(context, datePickerListener,calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH)).show(); 
    } 
}); 
+0

你能教/指导我如何使用DatePicker吗?当我触摸EditText时,Datepicker会弹出,然后选定的日期将在EditText? – John

+0

已经更新的答案。 – Pehlaj

+0

无法解析符号上下文。 @ user12345 – John