Диалоговое окно выбора даты Android для получения дней недели

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

Ниже показано, что я реализовал для выбора даты в диалоговом окне пикета даты.

Calendar cal = Calendar.getInstance();
EditText edt1;
String  dateFormat = "dd/MM/yyyy";

final DatePickerDialog.OnDateSetListener date1 = new DatePickerDialog.OnDateSetListener() {

    @Override
    public void onDateSet(DatePicker view, int year, int monthOfYear,
            int dayOfMonth) {
        // TODO Auto-generated method stub
        cal.set(Calendar.YEAR, year);
        cal.set(Calendar.MONTH, monthOfYear);
        cal.set(Calendar.DAY_OF_MONTH, dayOfMonth);
        updateLabel1();
    }
};

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_timesheet_form);

    edt1=(EditText)findViewById(R.id.editText1);

    edt1.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            new DatePickerDialog(TimesheetForm.this, date1, cal.get(Calendar.YEAR), cal.get(Calendar.MONTH), cal.get(Calendar.DAY_OF_MONTH)).show();
        }
    });


}
private void updateLabel1() {

    SimpleDateFormat sdf = new SimpleDateFormat(dateFormat, Locale.US);
    edt1.setText(sdf.format(fromCalendar.getTime()));
} 

Приведенный выше код возвращает выбранную дату из диалогового окна, но, похоже, нет способа вернуть дни всей недели.


person Rigorous implementation    schedule 13.11.2013    source источник
comment
вы объясните больше, что вы хотите сделать ??   -  person Developer    schedule 13.11.2013
comment
просто создайте метод, передайте дату, получите даты текущей недели.... ссылка   -  person Srikanth Roopa    schedule 13.11.2013
comment
@GauravPandey: я в основном хочу отображать все дни конкретной недели, в которых присутствует выбранная дата (которая получена из диалогового окна выбора даты).   -  person Rigorous implementation    schedule 13.11.2013
comment
@srikanthgr: не нашел полезным извлекать решение моей проблемы. Они более локализованы для получения только одной конкретной даты на неделе.   -  person Rigorous implementation    schedule 13.11.2013
comment
да, это просто ссылка, которую вы должны изменить ...   -  person Srikanth Roopa    schedule 13.11.2013


Ответы (1)


Код ниже является примером получения дней текущей/выбранной недели. В моем случае я жестко запрограммировал дату для проверки функциональности.

Calendar cal = Calendar.getInstance();

        // Set a custom date : 2013 November 17th
        cal.set(Calendar.YEAR, 2013);
        cal.set(Calendar.MONTH, 10);
        cal.set(Calendar.DATE, 17);

        // Date to an int variable to display
        int date = cal.get(Calendar.DATE);

        // Display the week number
        int weekNr = cal.get(Calendar.WEEK_OF_YEAR);

        // Generate the String with the days of the current week
        StringBuffer weekDays = new StringBuffer();
        for (int i = 1; i <= 7; i++) {
            cal.set(Calendar.DAY_OF_WEEK, i);
            weekDays.append(cal.get(Calendar.DATE));

            if (i < 7) {
                weekDays.append(" :: ");
            }
        }

        // Show an alert
        showAlert("Year: " + cal.get(Calendar.YEAR) + "\nMonth : " + (cal.get(Calendar.MONTH) + 1) + 
                    "\nDay: " + date + "\n\nWeek : " + weekNr + "\n\nWeek Days : " + weekDays.toString());

а вот метод оповещения:

public void showAlert(String message) {
        new AlertDialog.Builder(this).setTitle("Date").setMessage(message).setCancelable(true).show();
    }

Вы должны немного изменить это, чтобы это соответствовало вашему коду. Лучшей практикой является создание для этого отдельного метода или добавление его в метод updateLabel1() и вызов этого метода из вашего onDateSetListener из вашего DatePicker. Имейте в виду, что ваша неделя всегда начинается в воскресенье.

Вот результат, который я получаю из этого кода: введите здесь описание изображения

Удачи,

Kr

person pinyin_samu    schedule 14.11.2013
comment
Я только что проверил вышеизложенное, но, похоже, это не дает мне нужной недели. Моя неделя начинается с четверга или пятницы. ниже мой код. Вот как я реализую с помощью моего средства выбора даты String[] items1 = edt1.getText().toString().split(/); Строка date1=items1[0]; Строка месяц=items1[1]; Строка year=items1[2]; Календарь c = Calendar.getInstance(); c.set(Календарь.DATE, Integer.parseInt(date1)); c.set(Календарь.МЕСЯЦ, (Integer.parseInt(месяц))); c.set(Календарь.ГОД, Integer.parseInt(год)); //остальное все это ваш код. - person Rigorous implementation; 16.11.2013