Nach dem offiziellen Dokument http://developer.android.com/guide/topics/ui/controls/pickers.html#DatePicker.Wie übertrage ich die formatierte Datumszeichenkette von meinem DatePickerFragment?
public class DatePickerFragment extends DialogFragment
implements DatePickerDialog.OnDateSetListener {
@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);
}
@Override
public void onDateSet(DatePicker view, int year, int month, int day) {
Calendar c = Calendar.getInstance();
c.set(year, month, day);
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String formattedDate = sdf.format(c.getTime());
// How to get the string from here to the caller?
}
}
Zum Testen der Anrufer Aktivität nur zeigt die TextView
und ruft den Picker, wenn der Benutzer berührt das Widget:
Ich habe gerade den gleichen Code, und fügte hinzu, nur das Ergebnis der Formatierung in der onDateSet
Methode :
public class OrderHeadEditActivity extends Activity {
private TextView mDTDelivery;
...
@Override
protected void onCreate(Bundle bundle) {
...
mDTDelivery = (TextView) findViewById(R.id.order_head_view_dt_delivery);
...
mDTDelivery.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
DialogFragment picker = new DatePickerFragment();
picker.show(getFragmentManager(), "datePicker");
}
});
}
...
}
die Datumsauswahl angezeigt wird, und nach dem Haltepunkt an der Stelle einstellen, wo das Ergebnis in einen String formatiert ist, kann ich sehen, es funktioniert.
Ich weiß jedoch nicht, wie Sie den String-Wert zurück an das Widget mtDTDelivery
übergeben?
machen Sie Ihre Datapicker-Klasse eine innere Klasse Ihrer Aktivitätsklasse – Raghunandan
haben Sie versucht, die unten? Die Schnittstellenmethode wird funktionieren. – Raghunandan
Ich habe es noch nicht versucht. Ich werde es später versuchen. Ich würde es gerne zuerst verstehen. (Ich bin neu in Java und seine Iterfaces, und auch neu für Android.) – pepr