2012-09-16 41 views
5

Quiero incrustar un DatePickerDialog dentro de una actividad de Android en sí. No quiero que aparezca el DatePicker cuando se hace clic en un botón como un cuadro de diálogo, sino que se inserta dentro de mi actividad. He intentado usar la vista DatePicker dentro de mi diseño, pero esto parece ser diferente de DatePickerDialog.Incrustar datepicker dentro de una actividad

estoy usando DialogFragment para la creación de la DatePickerDialog y usando el siguiente código en onCreate de MainAcitivity.java

FragmentTransaction ft = getFragmentManager().beginTransaction(); 
    DatePickerDialogFragment datePickerDialogFragment = DatePickerDialogFragment.newInstance(); 

    ft.add(R.id.main_screen_layout, datePickerDialogFragment); // main_screen_layout is given as the id for the layout related to MainActivity 
    ft.commit(); 

// DatePickerDialogFragment.java

public class DatePickerDialogFragment extends DialogFragment

implements DatePickerDialog.OnDateSetListener { 

public static DatePickerDialogFragment newInstance() { 
    return new DatePickerDialogFragment(); 
} 

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, 
     Bundle savedInstanceState) { 
    View v = inflater.inflate(R.layout.dialog_datepicker, container, false); 
    View tv = v.findViewById(R.id.tv); 

    ((TextView)tv).setText("This is a new instance"); 

    return v; 
} 

@Override 
public Dialog onCreateDialog(Bundle savedInstanceState) { 
    Calendar c = Calendar.getInstance(); 
    return new DatePickerDialog(getActivity(), this, 
      c.get(Calendar.YEAR), 
      c.get(Calendar.MONTH), 
      c.get(Calendar.DAY_OF_MONTH)); 
} 

public void onDateSet(DatePicker view, int year, int monthOfYear, 
     int dayOfMonth) { 
    // TODO Auto-generated method stub 

} 

}

¿Cómo hacer para esto?

+0

allí son el montón de fecha componentes recolectores de la interfaz de usuario. ¿Por qué no usas uno de estos? –

Respuesta

1

Tengo DatePicker y DateTime en el diseño de la actividad. La idea es permitir la edición de ambos, componer un valor de fecha y hora y devolverlo una vez que el usuario haga clic en un botón hecho/configurado. A continuación podrá encontrar algo de código que muestra cómo la DatePicker se incrusta en el diseño y el código de actividad:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_gravity="center" 
    android:orientation="vertical"> 

    <DatePicker 
     android:id="@+id/date_value" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_horizontal" 
     android:calendarViewShown="false" /> 
</LinearLayout> 


public class DateSelectionActivity extends Activity { 

    private DatePicker datePicker; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     // ... 

     this.datePicker = (DatePicker) this.findViewById(R.id.date_value); 
     this.datePicker.init(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH), calendar.get(Calendar.DAY_OF_MONTH), null); 

     // ... 
    } 

    private OnClickListener confirmButtonClickListener = new OnClickListener() { 

      @Override 
      public void onClick(View v) { 

       // Get user selection 
       // DateSelectionActivity.this.datePicker.getYear()); 
       // DateSelectionActivity.this.datePicker.getMonth()); 
       // DateSelectionActivity.this.datePicker.getDayOfMonth()); 
      } 
    } 
} 
Cuestiones relacionadas