2013-02-26 35 views
5

I zostały próby utworzenia próbnika czasu w oknie dialogowym i pojawia się błąd w klasie fragment powiedzenie:Android: Czas Picker Dialog

Sposób is24HourFormat (aktywny) jest zdefiniowana dla danego typu DateFormat w następującej linii.

W linii

DateFormat.is24HourFormat(getActivity())); 

To jest przykład prosto z android stronie dewelopera, więc nie spodziewałem się żadnych błędów. Pokazałem poniższy kod.

Jeśli ktoś mógłby mi w tym pomóc, byłby to najbardziej doceniany.

Dzięki

Kod

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"); 
    } 


} 

Fragment

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> 

Odpowiedz

13

Zaimportowałeś java.text.DateFormat, musisz zaimportować android.text.format.DateFormat zamiast tego. Używasz niewłaściwej klasy.

3

Powodem tego jest fakt, że używasz niewłaściwego DateFormat.

Masz:

import java.text.DateFormat; 

Gdy chcesz:

import android.text.format.DateFormat 

Podsumowując, te dwa obiekty mają taką samą nazwę, ale nie są one tego samego obiektu. Musisz więc użyć specjalnie dostarczonego androida, ponieważ jest jedynym, który wie, jak postępować z Context w metodzie, którą wywołujesz DateFormat.is24HourFormat(getActivity()));.

Powiązane problemy