Android 개발~대화상자 열기

16794 단어 AndroidJava

개시하다


안녕하세요.나는 모 학교에서 프로그래밍 등을 배우는 서버 측의 프로그래머 나루터다.
이번에도 안드로이드 개발해.

대상

  • 항상 자바를 쓸 줄 아는 사람.
  • 안드로이드 개발은 애매모호하지만 다소 능력이 있는 사람. 
  • 대화 상자 표시


    대화 상자 구성



    데이터 제작 및 표시 절차


    경보 발생기의 제작, 표시 처리는 다음과 같다.
    1) DialogFragment를 상속하는 클래스를 만듭니다.
    public class SimpleDialogFragment  extends DialogFragment {
    
    2) onCreateDialog()는 메소트에서 이노크 주체의 생성 처리를 기술한다.
    public Dialog onCreateDialog( ... ) { 
        ダイアログ生成処理(後述)
    }
    
    3) 아크릴산 에스테르가 표시될 때 아래의 외투를 기술한다
  • 위 범주를 업데이트합니다.
  • SimpleDialogFragment dialog = new SimpleDialogFragment();
    
  • 탄성 화폐를 획득한다.
  • FragmentManager manager = getSupportedFragmentManager();
    
  • 쇼 () 메소트에 일록이 표시됩니다.
  • < 引数は以下の2個。 >
    第 1 : フラグメントマネージャ
    第 2 : ダイアログを識別するタグ文字列(任意の文字列)
    dialog . show ( manager , “ ... ” );
    
    (참고)DialogFragment.FragmentManagerともにv4パッケージの物を import する。
    ○ import android.support.v4.app.FragmentManager 
    
    × import android.app.FragmentManager
    

    주름 바디 생성 단계


    이 작업에서 작성한 earkfrace 레벨의 onCreateDialog() Mesort에 기술된 Arearta eark 바디의 생성 처리는 다음 절차를 따릅니다.
    1) 경보 생성 일록스타가 닫힙니다.
    AlertDialog.Builder builder = new AlertDialog.Builder( コンテキスト );
    
    2) 디스플레이를 설정합니다.
    ・コンテンツエリア
    builder.setMessage( ... );
    ・タイトル
    builder.setTitle( ... );
    
    3) 동작 버튼을 설정합니다.
    builder . setPositiveButton( “ ボタンラベル ” , ボタンタップ時のリスナオブジェクト(後述)); 
    
    다른 항목으로는 setNegativeButton(), setNeutralButton()이 있습니다.
    4) 주름이 생긴다.
    AlertDialog dialog = builder.create( ) ;
    
    (참고)AlertDialog クラスは、v7 パッケージのものを import する

    클릭 처리


    Aratta의 일록의 동작 도표판의 처리는 다람쥐급에 기술되어 있다.
    단계는 다음과 같습니다.
    1) DialogInterface.OnClickListener 인터페이스를 구현하는 네스트된 카테고리를 만듭니다.
    2) onClick () 은 mesort에서 처리를 기술합니다.
    private class DialogButtonClickListener implements DialogInterface.OnClickListener {
            @Override
            public void onClick(DialogInterface dialog(ダイアログ本体), int which(タップされたボタンの定数値)) {
                //クリック処理
            }
    }
    
    (참고)アクションボタンが複数ある場合、ボタンごとにリスナクラスを用意して良いが、第 2 引数 ( int which ) を使って分岐させても良い。

    활동과의 결합


    (1) 아크릴산 에스테르 획득
    주름 안에서 기체에 표시되는 활성화를 얻으려면 getActivity () Mesort를 사용하십시오.
    Activity parent = getActivity();
    
    (2) 세로 방향
    아크릴산 에스테르에서 변주곡까지의 전송 방법은 다음과 같다.
    1) Bundle 닫기를 생성합니다.
    Bundle extras = new Bundle();
    
    2) onClick () 은 mesort에서 처리를 기술합니다.
    extends.putデータ型( “名前” , 値 );
    
    3) 주름 및 주름 2)의 Bundle 닫기를 설정합니다.
    dialog.setArgments(extends);
    
    4) 접착제 내에서 getargments()Mesort를 통해 위의 Bundle OFF를 획득하고 데이터를 꺼냅니다.
    → 체크 아웃 방법은 Intent와 동일합니다(미리 null 검사).

    샘플 코드


    FullDialogFragment.java
    public class FullDialogFragment extends DialogFragment {
        @Override
        public Dialog onCreateDialog(Bundle savedInstanceState) {
            AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
            builder.setTitle("通常ダイアログ");
            builder.setMessage("よろしいですか?");
            builder.setPositiveButton("ok", new DialogButtonClickListener());
            builder.setNeutralButton("??", new DialogButtonClickListener());
            builder.setNegativeButton("NG", new DialogButtonClickListener());
            AlertDialog dialog = builder.create();
            return dialog;
        }
    
        /**
         * ダイアログのボタンが押されたときの処理が記述されたメンバクラス。
         */
        private class DialogButtonClickListener implements DialogInterface.OnClickListener {
    
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Activity parent = getActivity();
                String msg = "";
                switch (which) {
                    case DialogInterface.BUTTON_POSITIVE:
                        msg = "通常ダイアログ: OKが選択されました。";
                        break;
                    case DialogInterface.BUTTON_NEUTRAL:
                        msg = "通常ダイアログ: ??が選択されました。";
                        break;
                    case DialogInterface.BUTTON_NEGATIVE:
                        msg = "通常ダイアログ: NGが選択されました。";
                        break;
                }
                Toast.makeText(parent, msg, Toast.LENGTH_SHORT).show();
            }
        }
    }
    
    활동 범주(발췌문)
    FullDialogFragment dialog = new FullDialogFragment(); 
    FragmentManager manager = getSupportFragmentManager();
    dialog.show(manager,"FullDialogFragment");
    

    TIPS


    날짜 선택 대화 상자


    날짜 선택 대화 상자에서 DatePickerDialog를 "new"및 show()로 변경하면 됩니다.
    매개변수는 다음과 같습니다.
  • ①상하문
  • ② 청취 대상
  • ③ 초기값의 연도
  • ④ 초기 값의'달'→ 자바의'달'내부는 0으로 시작한다.
  • ⑤ 초기값의 "일"
  • 리나의 대상은 DatePickerDialog이다.On DateSet Listener 인터페이스implements를 onDateSet () 방법에 기술하여 처리합니다.
    매개변수는 다음과 같습니다.
  • ①날짜 지정용 화면 위젯
  • ② 선택한 "년"
  • ③ 선택한 월
  • ④ 선택의 날
  • 샘플 코드

    public void showDatePickerDialog(View view){
            Calendar cal = Calendar.getInstance();
            int nowYear = cal.get(Calendar.YEAR);
            int nowMonth = cal.get(Calendar.MONTH);
            int nowDayOfMonth = cal.get(Calendar.DAY_OF_MONTH);
    
            DatePickerDialog dialog = new DatePickerDialog(DialogSampleActivity.this, new DatePickerDialogDateSetListener(),nowYear,nowMonth,nowDayOfMonth);
            dialog.show();
    }
    
    private class DatePickerDialogDateSetListener implements DatePickerDialog.OnDateSetListener {
    
            @Override
            public void onDateSet(DatePicker view,int year,int month,int dayOfMonth) {
                String msg = "日付選択ダイアログ:" + year + "年" + (month + 1) + "月" + dayOfMonth + "日";
                Toast.makeText(DialogSampleActivity.this, msg, Toast.LENGTH_SHORT).show();
            }
    }
    

    시간 선택 대화 상자


    시간 선택 대화 상자는 TimePickerDialog를 "new"하고 show () 를 선택하면 됩니다.
    매개변수는 다음과 같습니다.
  • ①상하문
  • ② 청취 대상
  • ③ 초기 값의 시(24시간 단위)
  • ④ 초기값의 분
  • ⑤24시간 표시 여부
  • 리나 대상은 Time Picker Dialog입니다.On TimesetListener 인터페이스implements를 onTimeset () 방법에 기술합니다.
    매개변수는 다음과 같습니다.
  • ①시간지정용 화면 위젯
  • ② 선택한 시
  • ③ 선택한 분
  • 샘플 코드

    public void showTimePickerDialog(View view){
            TimePickerDialog dialog = new TimePickerDialog(DialogSampleActivity.this, new TimePickerDialogTimeSetListener(),0,0,true );
            dialog.show();
    }
    
    private class TimePickerDialogTimeSetListener implements TimePickerDialog.OnTimeSetListener {
    
            @Override
            public void onTimeSet(TimePicker view,int hourOfDay,int minute) {
                String msg = "時間選択ダイアログ:" + hourOfDay + "時" + minute + "分";
                Toast.makeText(DialogSampleActivity.this, msg, Toast.LENGTH_SHORT).show();
            }
    }
    
    이상.는 Android 대화 상자의 아웃라인입니다.
    만약 무슨 잘못이 있으면 지적을 기다리시면 저에게 연락 주세요.
    끝까지 읽어주셔서 감사합니다.

    좋은 웹페이지 즐겨찾기