인코딩의 Decoding

728x90
반응형

Date Picker를 띄우는 방법을 보겠습니다.

 

Date Picker 띄우기

1. Project 생성

Name은 임의로 정해주세요

 

2. Layout 설정

activity_main.xml 선택

기존에 있던 TextView를 지워주고 Button 하나를 끌어 옵니다.

onClick 속성 - showDatePicker

text 속성 - Date

 

2. Fragment 추가 ( Date Picker를 구현하는 작은 화면 )

android.scroll.[projectName] 우클릭

우클릭 하고 New > Fragment > Fragment(Empty) 선택

Fragment Name - DatePickerFragment로 해주고 아래 체크box는 모두 해제 해줍니다.

 

새로 만들어진 DatePickerFragment 파일에 들어가서

코드를 다음과 같이 적어줍니다.

package android.scroll.pickertest;


import android.app.DatePickerDialog;
import android.app.Dialog;
import android.os.Bundle;

import androidx.annotation.NonNull;
import androidx.fragment.app.DialogFragment;
import androidx.fragment.app.Fragment;

import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.DatePicker;
import android.widget.TextView;

import java.util.Calendar;

/**
 * A simple {@link Fragment} subclass.
 */
public class DatePickerFragment extends DialogFragment
                    implements DatePickerDialog.OnDateSetListener {

    @NonNull
    @Override
    public Dialog onCreateDialog(Bundle savedInstanceState) {
        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);

        return new DatePickerDialog(getActivity(),this,year,month,day);
    }

    @Override
    public void onDateSet(DatePicker datePicker, int year, int month, int day) {
        MainActivity activity = (MainActivity)getActivity();
        activity.processDatePickerResult(year,month,day);
    }
}

 

3. MainActivity.java 소스 코드 수정

 

Date Button에 적용 시켜준 showDatePicker 클릭 메소드를 포함하여 Date Picker를 포함해서 날짜를 선택 했을 때 선택된 날짜를 Toast 메세지로 띄어주는 소스 입니다.

 

MainActivity 소스를 다음과 같이 수정해줍니다.

package android.scroll.pickertest;

import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.DialogFragment;

import android.os.Bundle;
import android.view.View;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {

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

    public void showDatePicker(View view) {
        DialogFragment newFragment = new DatePickerFragment();
        newFragment.show(getSupportFragmentManager(),"datePicker");
    }

    public void processDatePickerResult(int year, int month, int day){
        String month_string = Integer.toString(month+1);
        String day_string = Integer.toString(day);
        String year_string = Integer.toString(year);
        String dateMessage = (month_string + "/" + day_string + "/" + year_string);

        Toast.makeText(this,"Date: "+dateMessage,Toast.LENGTH_SHORT).show();
    }
}

 

다음과 같이 수정하면 결과는 이렇습니다!

Button 클릭
날짜 선택 가능
날짜를 선택하면 다음과 같이 Toast 메세지로 보여주게 구현했습니다.

반응형

이 글을 공유합시다

facebook twitter googleplus kakaoTalk kakaostory naver band