2016-12-29 7 views
0

FragmentImageViewDatePickerを実装しました。 コールデートピッカー選択からコール

public class APD extends Fragment { 

    [...] 
    public void showDatePickerDialog() { 
     DatePicker datePicker = new DatePicker(); 
     datePicker.show(getActivity().getSupportFragmentManager(), "datePicker"); 
    } 

    calendar_image.setOnClickListener(new View.OnClickListener() { 
      @Override 
       public void onClick(View view) { 
       showDatePickerDialog(); 
      } 
     }); 
    [...] 
} 

がどのようにそれが実現することができます。

@NonNull 
@Override 
public Dialog onCreateDialog(Bundle savedInstanceState) { 
    // Use the current date as the default date in the picker 
    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); 

    // Create a new instance of DatePickerDialog and return it 
    return new DatePickerDialog(getActivity(), this, year, month, day); 
} 

// Called when the user presses "OK" on the DatePicker 
@Override 
public void onDateSet(android.widget.DatePicker datePicker, int i, int i1, int i2) { 
    // Do something with the date chosen by the user 
    String date = datePicker.getDayOfMonth() + "-" + datePicker.getMonth() + "-" + datePicker.getYear();  
} 

私は私がそのようなようなDatePickerを呼び出すFragmentを呼び出すには、日付の選択をキャッチしたいですか?

答えて

1

あなたはフラグメントに直接日付をキャッチすることができます...このコードに

String date; 
ImageView ib=(ImageView)findViewByID(your id); 
ib.setOnClickListener(new View.OnClickListener(){ 
@Override 
    public void onClick(View v) { 
      int mYear, mMonth, mDay; 
    final Calendar c = Calendar.getInstance(); 
    mYear = c.get(Calendar.YEAR); 
    mMonth = c.get(Calendar.MONTH); 
    mDay = c.get(Calendar.DAY_OF_MONTH); 
    DatePickerDialog datePickerDialog = new DatePickerDialog(getActivity(), new DatePickerDialog.OnDateSetListener() { 
     @Override 
     public void onDateSet(DatePicker view, int year, int month, int dayOfMonth) { 
      date=dayOfMonth + "/" + (month + 1) + "/" + year; 
     } 
    }, mYear, mMonth, mDay); 
    //for setting minimum date for selection 
    datePickerDialog.getDatePicker().setMinDate(c.getTimeInMillis()); //optional for setting min date 
    datePickerDialog.show(); 
    } 
} 
を見ます