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

datepicker dialog 2개를 같이 사용할 수 있나요?

0 추천

안녕하세요.

바보스러운 질문일수도 있는데, 초보이니... 이해해주세요. ^^

설문조사에서 사용하는것 처럼, 시작일과 종료일을 입력받을려고 하는데요.

시작일 하나는 datepicker dialog 로 입력받을 수 있겠는데,

종료일은 어떻게 받아야 할지 난감하네요.

구글과 네이버, 안드로이드 게시판 많이 뒤져봤는데...의외로 자료가 없네요.

너무 쉬운거라서 그런가요? -.-;

하나의 activity 에 시작일과 종료일 버튼이 있고,

시작일을 클릭하면 datepicker dialog 가 떠서 선택한 년/월/일이 입력됩니다.

종료일도 이렇게 하고싶은데... listener 구현을 어떻게 해야할지 까마득하네요.

아시는 분 답변 부탁드릴께요. ^^;

작업중이 소스코드 올려드립니다.

MainActivity.java 내용

public class MainActivity extends ActionBarActivity {

    int mYear, mMonth, mDay;
    Button startbtn, endbtn;
    final int DATE_DIALOG_ID = 0;

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

        startbtn = (Button) findViewById(R.id.startbtn);
        endbtn = (Button) findViewById(R.id.endbtn);

        Calendar c = Calendar.getInstance();
        mYear = c.get(Calendar.YEAR);
        mMonth = c.get(Calendar.MONTH);
        mDay = c.get(Calendar.DAY_OF_MONTH);

        startbtn.setOnClickListener(new View.OnClickListener() {
            public void onClick(View v) {
                showDialog(DATE_DIALOG_ID);
            }
        });

    }

    protected Dialog onCreateDialog(int id) {
        switch(id) {
            case DATE_DIALOG_ID:
                return new DatePickerDialog(this, mDateSetListener, mYear, mMonth, mDay);
        }
        return null;
    }
    private DatePickerDialog.OnDateSetListener mDateSetListener = new DatePickerDialog.OnDateSetListener() {
        public void onDateSet(DatePicker view, int year, int monthOfYear,int dayOfMonth) {
            mYear = year;
            mMonth = monthOfYear;
            mDay = dayOfMonth;
            startbtn.setText(String.format("%04d-%02d-%02d", mYear, mMonth + 1, mDay));
        }
    };
}




activity_main.xml 내용

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="시작일선택"
        android:id="@+id/startbtn"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="44dp" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="종료일선택"
        android:id="@+id/endbtn"
        android:layout_below="@+id/startbtn"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="41dp" />

 

kai5 님이 2015년 8월 13일 질문

1개의 답변

0 추천
flag 변수를 만들고,

showDialog전에 시작버튼은 flag=1, 종료버튼은 flag=2를 주고,

리스너에서 if문으로 flag 비교해서 각각 처리하면 될듯하네요.
리히트 (1,450 포인트) 님이 2015년 8월 13일 답변
method 에 변수로 넣을 궁리만 했었는데, 이렇게 쉽게 처리하는 방법이 있었네요.
덕분에 처리완료 했습니다.
감사합니다. ^^
...