2

アクティビティに、デフォルトで現在の日付をボタンタイトルとして表示するボタンが必要です。ボタンをクリックすると、日付ピッカーダイアログが表示され、新しいピックがボタンタイトルとして表示されます。

どうすればそれを達成できますか?より良いアイデアはありますか?ユーザーが日付を変更しやすくするために、EditTextを使用してこれを行う方が良いですか?

4

1 に答える 1

1

私はここに時間と日付の両方のコードを添付しました、あなたの要件に従ってこれを使用してください。ここでは、txtdateとtxtTimeを意図しており、ボタンのテキストに設定できます。

private static final int DIALOG_DATE = 1;
         private static final int DIALOG_TIME = 2;    


private Calendar dateTime = Calendar.getInstance();
     private SimpleDateFormat dateFormatter = new SimpleDateFormat(
             "MMMM dd yyyy");
     private SimpleDateFormat timeFormatter = new SimpleDateFormat(
             "hh:mm a");


                 txtstdate.setText(dateFormatter.format(dateTime.getTime()));   
  txtAddtime.setText(timeFormatter.format(dateTime.getTime()));


@Override
    protected Dialog onCreateDialog(int id)
    {
        switch (id)
        {
        case DIALOG_DATE:
            return new DatePickerDialog(this, new OnDateSetListener()
            {

                @Override
                public void onDateSet(DatePicker view, int year,
                        int monthOfYear, int dayOfMonth)
                {
                    dateTime.set(year, monthOfYear, dayOfMonth);
                    txtstdate.setText(dateFormatter.format(dateTime.getTime()));
                    txtAdddate.setText(dateFormatter.format(dateTime.getTime()));
                }
            }, dateTime.get(Calendar.YEAR),
               dateTime.get(Calendar.MONTH),
               dateTime.get(Calendar.DAY_OF_MONTH));

        case DIALOG_TIME:
            return new TimePickerDialog(this, new OnTimeSetListener()
            {

                @Override
                public void onTimeSet(TimePicker view, int hourOfDay,
                        int minute)
                {
                    dateTime.set(Calendar.HOUR_OF_DAY, hourOfDay);
                    dateTime.set(Calendar.MINUTE, minute);
                    txtsttime.setText(timeFormatter.format(dateTime.getTime()));
                    txtAddtime.setText(timeFormatter.format(dateTime.getTime()));
                }
            }, dateTime.get(Calendar.HOUR_OF_DAY),
               dateTime.get(Calendar.MINUTE), false);

        }
        return null;
    }


}

**Call Dialog:**    

ボタンクリックイベントでこのメソッドを呼び出します。

showDialog(DIALOG_DATE);

showDialog(DIALOG_TIME);

詳細については、http://hasmukhbhadani.blogspot.in/search/label/Date%20and%20time%20Dialogにアクセスしてください。 http://hasmukhbhadani.blogspot.in/search/label/DatePickerSlider%20in%20android

于 2012-09-07T11:10:43.090 に答える