Android: Cuadro de diálogo Selector de tiempo

He estado intentando crear un selector del tiempo en un diálogo y consigo un error en la clase del fragmento que dice:

El método is24HourFormat (Activity) no está definido para el tipo DateFormat en la línea siguiente.

En la linea

DateFormat.is24HourFormat(getActivity())); 

Este es un ejemplo directamente del sitio web para desarrolladores de android, así que no esperaba ningún error. He mostrado el código abajo.

Si alguien me podría ayudar en esto sería lo más apreciado.

Gracias

Código

 package com.app.timer2; import android.app.Activity; import android.app.DialogFragment; import android.os.Bundle; import android.view.View; import com.app.timer.R; public class SecondActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_second);} public void showTimePickerDialog(View v) { DialogFragment newFragment = new TimePickerFragment(); newFragment.show(getFragmentManager(), "timePicker"); } } 

Fragmento

 package com.app.timer2; import java.text.DateFormat; import java.util.Calendar; import android.app.Dialog; import android.app.DialogFragment; import android.app.TimePickerDialog; import android.os.Bundle; import android.widget.TimePicker; public class TimePickerFragment extends DialogFragment implements TimePickerDialog.OnTimeSetListener { @Override public Dialog onCreateDialog(Bundle savedInstanceState) { // Use the current time as the default values for the picker final Calendar c = Calendar.getInstance(); int hour = c.get(Calendar.HOUR_OF_DAY); int minute = c.get(Calendar.MINUTE); // Create a new instance of TimePickerDialog and return it return new TimePickerDialog(getActivity(), this, hour, minute, DateFormat.is24HourFormat(getActivity())); } public void onTimeSet(TimePicker view, int hourOfDay, int minute) { // Do something with the time chosen by the user } } 

XML

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" android:orientation="vertical" > <Button android:id="@+id/start_time_button" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="0" android:padding="10dp" android:text="@string/start_time_button" android:onClick="showTimePickerDialog" /> </LinearLayout> 

Usted importó java.text.DateFormat, necesita importar android.text.format.DateFormat. Estás usando la clase incorrecta.

La razón de esto está sucediendo es porque usted está utilizando el DateFormat incorrecto.

Tienes:

 import java.text.DateFormat; 

Cuando quieres:

 import android.text.format.DateFormat 

En resumen, estos dos objetos tienen el mismo nombre pero no son el mismo objeto. Así que tienes que utilizar específicamente el android siempre y cuando sea el único que sabe cómo hacer frente a Context en el método que está llamando DateFormat.is24HourFormat(getActivity())); .

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.