2013-09-19 3 views
3

Я пытаюсь понять, как реализовать сборщик данных и времени для и приложения, которое я создаю. Кажется, я не могу найти встроенный способ, позволяющий пользователю установить дату выхода. Есть ли элегантный способ его реализации? Я должен буду иметь возможность вывести значения дня, месяца, года, часа и минуты, чтобы вычислить миллисекунды. Любые советы о том, что доступно для достижения этого?Использовать TimePicker или DatePicker в окне настроек на Android

ответ

7

Для выбора времени/даты в окне Предпочтения вы можете вызвать диалог, используя onPreferenceClickListener (Предпочтение). Используйте DatePickerDialog.OnDateSetListener или TimePickerDialog.OnTimeSetListener в пределах PreferenceActivity для получения выбранной даты/времени.

public class SettingsActivity extends PreferenceActivity implements DatePickerDialog.OnDateSetListener { 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    addPreferencesFromResource(R.xml.preferences); 

    Preference btnDateFilter = (Preference) findPreference("btnDateFilter"); 
    btnDateFilter.setOnPreferenceClickListener(new Preference.OnPreferenceClickListener() { 
     @TargetApi(Build.VERSION_CODES.HONEYCOMB) 
     @Override 
     public boolean onPreferenceClick(Preference preference) { 
      showDateDialog(); 
      return false; 
     } 
    }); 


} 


@Override 
public void onDateSet(DatePicker datePicker, int i, int i2, int i3) { 
    Log.i("dasd","year "+i+" month "+i2+" day "+i3); 
} 

private void showDateDialog(){ 
    // Use the current date as the default date in the picker 
    final Calendar c = Calendar.getInstance(); 
    int year = c.get(Calendar.YEAR); 
    int month = c.get(Calendar.MONTH); 
    int day = c.get(Calendar.DAY_OF_MONTH); 
    new DatePickerDialog(this,this, year, month, day).show(); 

} 

}

preference.xml

<Preference 
    android:key="btnDateFilter" 
    android:summary="Reschedule using current setting" 
    android:title="Reschedule" />