2017-01-06 7 views
0

Ich versuche, eine Datumsauswahl und eine Zeitauswahl zu haben, die Dialogfragment erweitert. Ich bin in der Lage, die Datumsauswahl zu erhalten, wenn ich die App ausführen, aber wenn ich die Zeitauswahl hinzugefügt habe, bekomme ich einen Fehler kann Methode DateFormat.is24HourFormat nicht auflösen.Kann Methode Methode DateFormat.is24HourFormat in TimePickerDIalog nicht lösen

Ich verwende Import android.support.v4.app.DialogFragment; nach der Post

TimepickerFragment show() method cannot be resolved

aber das Problem weiterhin besteht nach wie vor

Haupttätigkeit

import android.app.DatePickerDialog; 
import android.app.Dialog; 
import android.app.TimePickerDialog; 
import android.os.Bundle; 
import android.support.v4.app.DialogFragment; 
import android.support.v7.app.AppCompatActivity; 
import android.view.View; 
import android.widget.DatePicker; 
import android.widget.TextView; 
import android.widget.TimePicker; 
import java.text.DateFormat; 
import java.util.Calendar; 
import java.util.GregorianCalendar; 



public class MainActivity extends AppCompatActivity implements DatePickerDialog.OnDateSetListener, TimePickerDialog.OnTimeSetListener { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
} 


public void datePicker(View view) { 
    DatePickerFragment fragment = new DatePickerFragment(); 
    fragment.show(getSupportFragmentManager(), "date"); 
} 

public void TimePicker(View view) { 
    TimePickerFragment fragment = new TimePickerFragment(); 
    fragment.show(getSupportFragmentManager(), "time"); 
} 


private void setDate(final GregorianCalendar calendar) { 

    if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) { 
     final DateFormat dateFormat = DateFormat.getDateInstance(DateFormat.MEDIUM); 
     ((TextView) findViewById(R.id.pic_date)).setText(dateFormat.format(calendar.getTime())); 
    } 
} 


@Override 
public void onDateSet(DatePicker view, int year, int month, int day) { 
    GregorianCalendar cal = null; 
    if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) { 
     cal = new GregorianCalendar(year, month, day); 
    } 
    setDate(cal); 
} 

@Override 
public void onTimeSet(TimePicker view, int hourOfDay, int minute) { 
    Calendar cal = null; 
    ((TextView) findViewById(R.id.start_time)).setText(String.valueOf(hourOfDay)+ String.valueOf(minute)); 
} 


public static class DatePickerFragment extends DialogFragment { 

    @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(), (DatePickerDialog.OnDateSetListener) getActivity(), year, month, day); 
    } 

} 

public static class TimePickerFragment extends DialogFragment { 

    @Override 
    public Dialog onCreateDialog(Bundle savedInstanceState) { 
     // Use the current date as the default date in 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 DatePickerDialog and return it 
     return new TimePickerDialog(getActivity(), this, hour, minute, DateFormat.is24HourFormat(getActivity())); 
    } 

} 

}

Antwort

4

Ich hatte das gleiche Problem. Ich beschloss, es durch den Import

import android.text.format.DateFormat; 

statt

import android.icu.text.DateFormat; 

das ist, was ich hatte, oder in Ihrem Fall würde ich versuchen, diese zu ersetzen:

import java.text.DateFormat; 

(siehe hier: https://stackoverflow.com/a/15100358/3615383)

Verwandte Themen