[Android Studio] DatePickerDialog 사용법(비망록)
10100 단어 AndroidStudio자바
DatePickerDialog를 사용해 보았습니다.
DatePickerDialog는 조각의 일종으로 사진과 같은 날짜 선택 도구를 사용할 수 있게 되는 것 같다.
단편에 대해 몰랐기 때문에 조사해 보면,
프래그먼트를 작성하려면 Fragment(또는 기존의 서브클래스)의 서브클래스를 작성해야 합니다.
(단편 만들기 (Android Developers))
라고 있었으므로, 호호 그렇다고 생각해 DatePickerDialog의 클래스를 만들어 보았다.
DatePickerDialogFragment.javaimport android.app.DatePickerDialog;
import android.app.Dialog;
import android.os.Bundle;
import android.widget.DatePicker;
import androidx.fragment.app.DialogFragment;
import java.util.Calendar;
public class DatePickerDialogFragment extends DialogFragment{
@Override
public Dialog onCreateDialog(Bundle savedInstantState){
//デフォルトのタイムゾーンおよびロケールを使用してカレンダを取得
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);
DatePickerDialog datePickerDialog = new DatePickerDialog(getActivity(), (DatePickerDialog.OnDateSetListener)getActivity(), year, month, day); //this はonDateSetListener
return datePickerDialog;
}
TestDatePickerActivity.java
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import java.util.Calendar;
public class TestDatePickerActivity extends AppCompatActivity implements View.OnClickListener, DatePickerDialog.OnDateSetListener{
private TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test);
textView = findViewById(R.id.textViewTest);
textView.setOnClickListener(this);
//今日の日付をtextViewにセット
Calendar c = Calendar.getInstance();
textView.setText(String.format("%d年%d月%d日", c.get(Calendar.YEAR), c.get(Calendar.MONTH), c.get(Calendar.DAY_OF_MONTH)));
}
@Override
public void onClick(View view) {
//DatePickerFragmentを表示
DatePickerDialogFragment datePicker = new DatePickerDialogFragment();
datePicker.show(getSupportFragmentManager(), "datePicker");
}
//DatePickerFragment で日付がセットされたときにtextViewに取得した日付を代入する
@Override
public void onDateSet(DatePicker datePicker, int year, int month, int dayOfMonth) {
textView.setText(String.format("%d年%d月%d日", year, month + 1, dayOfMonth));
}
TestDatePickerActivity 에는 오늘의 일자가 나오고, 텍스트를 클릭하면 방금전의 DatePickerDialogFragment 가 불려 가고 일자 선택 툴이 나온다.
여기서, DatePickerDialogFragment 클래스에 OnDateSet 메소드를 쓴 경우, 어떠한 기술을 하면 선택한 일자를 testDatePickerActivity에 표시할 수 있는지 몰랐다. onDateSet 메소드를 testDatePickerActivity로 상속하면 어떻게든 할 수 있었기 때문에 좋았다는 이야기였습니다.
그건 그렇고 ...
이 사이트 등이라면 한 클래스에 정리해 쓰고 있다. ( htps : // 코엔긴 fぉw. 코 m / 쓰리 아 ls / 앙 d 로이 d / 다테 피 c r ぢ 아 g )
서브 클래스를 굳이 만들 필요는 없지만, 읽기 어렵기 때문에 클래스를 나누는 것이 깨끗하게 보인다고 생각한다.
Reference
이 문제에 관하여([Android Studio] DatePickerDialog 사용법(비망록)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/Pon2929/items/4024835c89406b0a6237
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.os.Bundle;
import android.widget.DatePicker;
import androidx.fragment.app.DialogFragment;
import java.util.Calendar;
public class DatePickerDialogFragment extends DialogFragment{
@Override
public Dialog onCreateDialog(Bundle savedInstantState){
//デフォルトのタイムゾーンおよびロケールを使用してカレンダを取得
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);
DatePickerDialog datePickerDialog = new DatePickerDialog(getActivity(), (DatePickerDialog.OnDateSetListener)getActivity(), year, month, day); //this はonDateSetListener
return datePickerDialog;
}
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
import java.util.Calendar;
public class TestDatePickerActivity extends AppCompatActivity implements View.OnClickListener, DatePickerDialog.OnDateSetListener{
private TextView textView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_test);
textView = findViewById(R.id.textViewTest);
textView.setOnClickListener(this);
//今日の日付をtextViewにセット
Calendar c = Calendar.getInstance();
textView.setText(String.format("%d年%d月%d日", c.get(Calendar.YEAR), c.get(Calendar.MONTH), c.get(Calendar.DAY_OF_MONTH)));
}
@Override
public void onClick(View view) {
//DatePickerFragmentを表示
DatePickerDialogFragment datePicker = new DatePickerDialogFragment();
datePicker.show(getSupportFragmentManager(), "datePicker");
}
//DatePickerFragment で日付がセットされたときにtextViewに取得した日付を代入する
@Override
public void onDateSet(DatePicker datePicker, int year, int month, int dayOfMonth) {
textView.setText(String.format("%d年%d月%d日", year, month + 1, dayOfMonth));
}
Reference
이 문제에 관하여([Android Studio] DatePickerDialog 사용법(비망록)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/Pon2929/items/4024835c89406b0a6237텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)