기타 여러 공통 대화 상자의 기본 사용


이 섹션 소개:

이전 섹션에서 우리는 Dialog의 상위 클래스인 AlertDialog를 연구했고, 이 섹션에서는 일반적으로 사용되는 몇 가지 클래스를 배우겠습니다. Dialog의 기본 용도는 다음과 같습니다: ProgressDialog(진행률 표시줄 대화 상자), DatePickerDialog (날짜 선택 대화 상자) 및 TimePickerDialog(시간 선택 대화 상자)~, 더 이상 고민하지 말고 이 섹션을 시작하겠습니다~


1. ProgressDialog(진행 표시줄 대화 상자)의 기본 사용

진행 표시줄 대화 상자를 만듭니다. 두 가지가 있습니다. 프레임 방법:

  • 1 ProgressDialog에서 제공하는 정적 메서드 show()를 직접 호출하여
  • 2을 표시한 다음 대화 상자의 매개변수를 설정하면 마지막으로 show()가 나옵니다.

코드 샘플:

렌더링 실행:

1.gif

주요 구현 코드:

MainActivity.java:

public 클래스 MainActivity는 AppCompatActivity를 확장하여 View.OnClickListener를 구현합니다.{

private Button btn_one;
private Button btn_two;
private Button btn_ three;
private ProgressDialog pd 1 = null;
private ProgressDialog pd2 = null;
private final static int MAXVALUE = 100 ;
  private int ProgressStart = 0;
private int add = 0;
private Context mContext = null;


//인터페이스는 메인 스레드에 의해서만 업데이트될 수 있으므로 진행 상황 업데이트를 위한 핸들러를 정의합니다. 핸들러 메시지에 의해 전달됨
  최종 핸들러 손 = new Handler()
                                                 if(msg.what == 123)
               > ~ |      pd2 .dismiss();
        super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
       mContext = MainActivity.binViews();
}

private void binViews() {
btn_one = (버튼) findViewById(R.id.btn_one);
btn_two = (버튼) findViewById(R.id.btn _two);
btn_ three = (버튼 ) findViewById(R.id.btn_ three);
btn_one.setOnClickListener(this);
btn_two.setOnClickListener(this);
btn_two.setOnClickListener(this);
}


@Override
public void onClick(View v) {
스위치(v.getId()){
                                                                                    / 여기에는 컨텍스트, 제목, 내용, 진행 상황 표시 여부, 취소 버튼으로 닫을 수 있는지 여부
                             , "리소스 로드 중", "리소스 로드 중입니다. wait...",false,true);
                       break;​​​​​​ //순서대로 설정 제목, 내용, 취소 버튼으로 닫을지 여부, 진행률 표시 여부
                    pd1.setTitle("소프트웨어 실행 중 업데이트됨");
                pd1.setMessage ("  "                                                                              | HORIZONTAL은 가로 진행률 표시줄이고 SPINNER는 원형 진행률 표시줄입니다.
                                                                       ate(true);
// prOGRESSDialog를 표시하기 위해 show() 메소드를 호출합니다.
pd1.show();
case r.id.btn_ three:
// 초기화 속성
Progressstart = 0;
add = 0; 속성
              pd2 = new ProgressDialog(MainActivity .this);
              pd2.setMax(MAXVALUE);           pd2.setMessage("파일을 로드하는 중입니다. 잠시만 기다려주세요..." ;                // 여기서 설정하는 것은 진행 상황을 표시할지 여부입니다. false로 설정합니다.
             pd2.setIndeterminate(false);
           pd2. ~                                                        를 통해{# ~                                                  . 쓰기
                                                             사용 통해   사용 사용 사용 사용 사용 ' ' s   통해   ' s ' 사용 통해   ' s 사용 통해 's ' 통해 's ' 통해 ‐ to ‐‐ ‐‐ ‐nw 사용
hand.sendemptymessage (123)}}; S Thread.sleep (100);
} catch (interruptedException E) {
e.printstacktrace ()
반환 추가;

코드는 비교적 간단하고 Progress에 대해서는 이미 배웠기 때문에 여기서는 자세히 설명하지 않겠습니다~


2.DatePickerDialog(날짜 선택 대화 상자) 및 TimePickerDialog(시간 선택 대화 상자)

먼저 무엇보다도 우리는 약간의 설명이 필요합니다: Date/TimePickerDialog는 사용자가 날짜와 시간을 선택하는 데만 사용됩니다. 안드로이드 시스템의 시스템 시간의 경우, 날짜는 영향을 미치지 않습니다. Google은 시스템 날짜 및 시간 설정에 대한 API를 발표하지 않았습니다. 앱에서 설정하려면 안드로이드 시스템 소스 코드를 다시 컴파일해야 하는데, 이는 매우 번거로운 작업입니다!

둘의 구성 방법은 매우 유사합니다. DatePickerDialog(context; DatePickerDialog.OnDateSetListener() 리스너; 연도; 월; 일)
TimePickerDialog(context; TimePickerDialog.OnTimeSetListener() 리스너; 시, 분, 24시간제 사용 여부)

코드 샘플:

렌더링 실행:

2.gif

주요 구현 코드:

MainActivity.java:

public 클래스 MainActivity는 AppCompatActivity를 확장하여 View.OnClickListener를 구현합니다.{

    private Button btn_date;
    private Button btn_time;
    private String 결과 = "";


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

    private void bindViews() {
       btn_date = (버튼) findViewById(R. id.btn_date);
        btn_time = (버튼) findViewById (R.id.btn_time);

        btn_date.setOnClickListener(this);
        btn_time.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        결과 = "";
        전환 (v .getId()){
            case R.id.btn_date:
               Calendar cale1 = Calendar.getInstance();
             new DatePickerDialog(MainActivity.this,new DatePickerDialog.OnDate SetListener() {
                   @Override
                 공용 void onDateSet(DatePicker 보기, int 연도, int monthOfYear,
                                      int dayOfMonth) {
                   //这里获到到的月取到需要加上1哦~
                        result += "你选择的是"+year+"年"+(monthOfYear+1)+"月"+dayOfMonth+"日";
                     Toast.makeText(getApplicationContext(), 결과, Toast.LENGTH_SHORT).show(); ㅋㅋㅋ get(Calendar.MONTH)
                      ,cale1.get(Calendar.DAY_OF_MONTH)).show();
               break;
            case R.id.btn_time :
               Calendar cale2 = Calendar.getInstance();
               new TimePickerDialog(MainActivity.this, new TimePickerDialog.OnTimeSetListener() {
                   @Override
                   public void onTimeSet(TimePicker view, int hourOfDay, int 분) {
                     결과 = ""; ㅋㅋㅋ LENGTH_SHORT).show();
}
                   }, cale2.get(Calendar.HOUR_OF_DAY), cale2.get(Calendar.MINUTE), true).show();

코드도 매우 간단해서 설명하지 않겠습니다~

3. 코드 다운로드:

DialogDemo.zip


DialogDemo1.zip

이 섹션 요약:

자, 이 섹션에서는 이전 4.x 버전과 비교하여 5.0의 기본 컨트롤 세 가지를 소개합니다. , 확실히 훨씬 더 예뻐요~ 그거면 됐어요 고마워요~