Пользовательский DatePicker - PullRequest
       3

Пользовательский DatePicker

10 голосов
/ 12 августа 2010

Я застрял на проблеме DatePicker для нескольких, и я не могу найти никакого решения.

В настоящее время у меня есть DatePickerDialog, который очень хорошо соответствует моим потребностям. ДА Мне также нужно иметь возможность скрыть / отключить поля «День и месяц» (чтобы выбрать месяц или год), я не могу найти никакого решения кроме реализации моего собственного MonthPicker / yearPicker. дело в том, что я не знаю, с чего начать писать инструмент выбора, который имеет тот же стиль, что и стиль по умолчанию.

Я был бы рад, если у кого-нибудь из вас есть пример кода пользовательского набора даты или какой-либо более простой идеи, чтобы справиться с моей проблемой.

Большое спасибо

1009 * замять *

Ответы [ 3 ]

7 голосов
/ 11 февраля 2011

Моя идея заключается в использовании пользовательского выбора даты для Android. В Google Code я нашел проект с открытым исходным кодом под названием Android Wheel

Android wheel for date time picker

После извлечения исходного кода из Google Code вы найдете несколько примеров, чтобы вы могли легко настроить сборщик года по своему усмотрению.

3 голосов
/ 20 октября 2011

В сотах есть некоторые изменения.

ViewGroup group = (ViewGroup) findViewById(R.id.picker);
group = (ViewGroup) group.getChildAt(0);
group = (ViewGroup) group.getChildAt(0);
// 0:datepicker , 1:calendar
Toast.makeText(this, String.format("%s children", group.getChildCount()), Toast.LENGTH_SHORT).show();
try{
    group.getChildAt(0).setVisibility(View.GONE);
    // 0 for year, 1 for month, 2 for day
}catch(Exception e){
Toast.makeText(this, e.toString(), Toast.LENGTH_SHORT).show();
}
1 голос
/ 24 марта 2011

Это довольно странно, но если вы посмотрите на макет для DatePicker, вы увидите его FrameLayout, содержащий 3 вложенных представления.Итак, я хотел скрыть год и сделал это.

    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);
    ViewGroup group = (ViewGroup) findViewById(R.id.picker);
    group = (ViewGroup) group.getChildAt(0);
    Toast.makeText(this, String.format("%s children", group.getChildCount()), Toast.LENGTH_SHORT).show();
    try{
        group.getChildAt(2).setVisibility(View.GONE);
            // 2 for year, 1 for day, 0 for month
    }catch(Exception e){
        Toast.makeText(this, e.toString(), Toast.LENGTH_SHORT).show();
    }
}

Это получает структуру кадра сборщика, а затем скрывает его третьего ребенка, который является годом.Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...