package org.adaptlab.chpir.android.survey.QuestionFragments; import java.lang.reflect.Field; import android.util.Log; import android.view.View; import android.widget.DatePicker; public class YearQuestionFragment extends DateQuestionFragment { private static final String TAG = "YearQuestionFragment"; private DatePicker mDatePicker; @Override protected void beforeAddViewHook(DatePicker datePicker) { mDatePicker = datePicker; if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.HONEYCOMB) { // Honeycomb + findAndHideField(datePicker, "mDaySpinner"); findAndHideField(datePicker, "mMonthSpinner"); } else { // Before Honeycomb findAndHideField(datePicker, "mDayPicker"); findAndHideField(datePicker, "mMonthPicker"); } } private void findAndHideField(DatePicker datePicker, String name) { try { Field field = DatePicker.class.getDeclaredField(name); field.setAccessible(true); View fieldInstance = (View) field.get(datePicker); fieldInstance.setVisibility(View.GONE); } catch (Exception e) { Log.e(TAG, "Error removing day or month field: " + e); } } @Override protected String serialize() { return String.valueOf(mYear); } @Override protected void deserialize(String responseText) { if (responseText.equals("")) return; mDatePicker.updateDate(Integer.parseInt(responseText), 1, 1); } }