마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

커스텀 다이얼로그위에 datepicker를 띄우고싶은데 데이터피커가안뜨는데 ㅠㅠ오류좀봐주세요ㅜㅠ

0 추천

제가 사용자에게 간단하게 이름이랑 날짜? 정도 정보를 받고싶어서요.. 너무 간단한 폼이여서 Activity를 새로 파서 구성하는건 화면도 텅비어서 커스텀 다이얼로그를 이용하려 하거든요...근데  현재날짜뜨는거까진 성공했는데 해당 텍스트뷰를 클릭하면 datepicker가 떠야되는데..안떠요..ㅠㅠ 혹시 오류좀 봐주실수있으신가요

 

public class DialogFragment extends android.support.v4.app.DialogFragment  {

    private TextView mDateDisplay;

    private int mYear;
    private int mMonth;
    private int mDay;
    static final int DATE_DIALOG_ID = 0;


    public DialogFragment() {

    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState)
    {
        View view = inflater.inflate(R.layout.custom_dialog, container);

        //// Date Picker : 시작 ////
        //(1) main.xml의 레이아수에 배치된 날짜 입력을 위한 TextView 인식
        mDateDisplay = (TextView) view.findViewById(R.id.pickDate3);


        //(2) 인식된 TextView 에 click listener 추가
        mDateDisplay.setOnClickListener(new View.OnClickListener() {
            @Override //(5)클릭되면 실행
            public void onClick(View v) {

               getActivity().showDialog(DATE_DIALOG_ID);  //(6)날짜 설정을 위한 다이얼로그 출력
            }
        });



        // (3) 현재 날짜 인식
        final Calendar c = Calendar.getInstance();
        mYear=c.get(Calendar.YEAR);
        mMonth=c.get(Calendar.MONTH);
        mDay=c.get(Calendar.DAY_OF_MONTH);

        // (4) 인식된 날짜를 출력
        updateDisplay();
        return view;
    }

    // (7) 다이어로그 출력시 DatePicker 다이어로그 출력

    protected Dialog onCreateDialog(int id) {
        switch(id){
            case DATE_DIALOG_ID : return new DatePickerDialog(getActivity(),mDateSetListener,mYear,mMonth,mDay);


        }

        return null;
    }


    // 설정된 날짜를 TextView에 출력
    private void updateDisplay() {
        // main.xml의 레이아웃에 배치된 날짜 입력 TextView에 인식된 날짜 출력
        mDateDisplay.setText(
                new StringBuilder()
                        //월은 시스템에서 0~11로 인식하기 때문에 1을 더해줌
                        .append(mYear).append("-")
                        .append(mMonth + 1).append("-")
                        .append(mDay).append(" ")
        );

    }

    // (8) 다이어로그에 있는 날짜를 설정(set)하면 실행됨
    private DatePickerDialog.OnDateSetListener mDateSetListener = new DatePickerDialog.OnDateSetListener() {

        public void onDateSet(DatePicker view, int year, int monthOfYear,
                              int dayOfMonth) {
            mYear = year;
            mMonth=monthOfYear;
            mDay=dayOfMonth;
            // 사용자가 지정한 날짜를 출력
            updateDisplay();

        }
    };
}

이건 해당 액티비티에서 dialogfragment를 띄우는 호출문이요!

FragmentManager fm = getFragmentManager();
DialogFragment dialogFragment = new DialogFragment();
dialogFragment.show(fm, "fragment_dialog_test");
뚜루루루둡 (1,130 포인트) 님이 2016년 11월 25일 질문

답변 달기

· 글에 소스 코드 보기 좋게 넣는 법
· 질문에 대해 추가적인 질문이나 의견이 있으면 답변이 아니라 댓글로 달아주시기 바랍니다.
표시할 이름 (옵션):
개인정보: 당신의 이메일은 이 알림을 보내는데만 사용됩니다.
스팸 차단 검사:
스팸 검사를 다시 받지 않으려면 로그인하거나 혹은 가입 하세요.
...