Date Picker를 띄우는 방법을 보겠습니다.
1. Project 생성
2. Layout 설정
기존에 있던 TextView를 지워주고 Button 하나를 끌어 옵니다.
onClick 속성 - showDatePicker
text 속성 - Date
2. Fragment 추가 ( Date Picker를 구현하는 작은 화면 )
우클릭 하고 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();
}
}
다음과 같이 수정하면 결과는 이렇습니다!
[Android] 어플리케이션 인터넷 연결 manifest file 설정 (5) | 2020.04.07 |
---|---|
[Android] Up 버튼 추가해주기 (2) | 2020.04.06 |
[Android] 안드로이드 Alert 창 띄우기 (4) | 2020.04.01 |
[Android] FAB(Floating Action Button) 이미지 변경하기 (1) | 2020.03.30 |
[Android] FloatingActionButton 사용하여 새로운 Activity 열기 (2) | 2020.03.29 |