Android 使用 for 循环的 Spinner 动态值

Android Spinner Dynamic value using for Loop

我想要一个微调器,它具有 1-12 月、1-31 日和 1917 年到当年的动态值。

<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 循环内,我希望 This To Be In Current Year - 18 以避免小于 18。 我想将默认值设置为 YEAR 或 YYYY

请尝试使用 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();
    }
});