1

タイムシートに似たものを実装しようとしているので、基本的に必要なのは、日付ピッカーダイアログから特定の日付を選択したときに、選択した日付が存在する週全体の日を含むテキストビューを表示することです。

以下は、日付ピケット ダイアログから日付を選択するために実装したものです。

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()));
} 

上記のコードは、ダイアログから選択された日付を返しますが、曜日全体を返す方法はないようです。

4

1 に答える 1

0

以下のコードは、現在/選択された週の日を取得する例です。私の場合、機能をテストするためにハードコードされた日付を設定しました。

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() メソッドに追加して、DatePicker の onDateSetListener からそのメソッドを呼び出すことです。週は常に日曜日から始まることに注意してください。

これは私がこのコードから得た結果です: ここに画像の説明を入力

幸運を、

KR

于 2013-11-14T13:41:34.247 に答える