AndroidクリックEditTextポップアップ日付セレクタDatePickerDialog

2724 ワード

登録が必要な項目では、誕生日など他の日付フォーマットのデータを記入する必要がある場合があります.この場合、DatePickerDialogを選択するのは間違いなく良い選択です.ユーザーが入力ボックスまたは入力ボックスをクリックしてフォーカスを得たときにDatePickerDialogを弾き出し、ユーザーは設定ボタンをクリックして日付を入力ボックスに記入する.
次のコードを直接入力します.
<EditText
                android:id="@+id/Birthday"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginLeft="30dip"
                android:layout_marginRight="30dip"
                 android:inputType="none"//         
                android:layout_weight="1" >
            </EditText>
birthday = (EditText)findViewById(R.id.Birthday);
         birthday.setInputType(InputType.TYPE_NULL); //         
         birthday.setOnFocusChangeListener(new View.OnFocusChangeListener() {
             
             @Override
             public void onFocusChange(View v, boolean hasFocus) {
                 // TODO Auto-generated method stub
                 if(hasFocus){
                     Calendar c = Calendar.getInstance();
                     new DatePickerDialog(ProfileActivity.this, new DatePickerDialog.OnDateSetListener() {
                         
                         @Override
                         public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
                             // TODO Auto-generated method stub
                             birthday.setText(year+"/"+(monthOfYear+1)+"/"+dayOfMonth);
                         }
                     }, c.get(Calendar.YEAR), c.get(Calendar.MONTH), c.get(Calendar.DAY_OF_MONTH)).show();
                
                 }
             }
         });
         
         birthday.setOnClickListener(new View.OnClickListener() {
             
             @Override
             public void onClick(View v) {
                 // TODO Auto-generated method stub
                 Calendar c = Calendar.getInstance();
                 new DatePickerDialog(ProfileActivity.this, new DatePickerDialog.OnDateSetListener() {
                     
                     @Override
                     public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
                         // TODO Auto-generated method stub
                         birthday.setText(year+"/"+(monthOfYear+1)+"/"+dayOfMonth);
                     }
                 }, c.get(Calendar.YEAR), c.get(Calendar.MONTH), c.get(Calendar.DAY_OF_MONTH)).show();
            
                  }
         });