2016-07-29 10 views
2

Auf Lollipop 5.1.1 auf einem Nexus 4 und auf Eibisch 6.0.1 auf dem Emulator, kommt die TimePickerDialog so aussah in meiner Anwendung auf:Warum ist das TimePicker-Dialogfeld bei Samsung Marshmallow 6.0.1 leer?

jedoch auf einem Samsung S6 Edge-Lauf Eibisch 6.0.1, kommt es wie folgt auf:

vollständig leer.

Die TimePickerDialog wird wie folgt initialisiert:

Calendar calendar = Calendar.getInstance(); 
Dialog timeDialog = new TimePickerDialog(androidContext, this, calendar.get(Calendar.HOUR_OF_DAY), calendar.get(Calendar.MINUTE), true); 
timeDialog.setTitle("Set Appointment Time"); 
timeDialog.show(); 
+0

Ich habe das gleiche Problem. –

Antwort

3

Ich weiß nicht, warum dies geschieht, aber ich habe mit Hilfe der Lösung von cirithere zur Verfügung gestellt, um dieses Problem gearbeitet. Er löst ein anderes Problem, aber dieses Problem wird ebenfalls angesprochen.

Die Lösung von Cirit ist ein TimePicker-Widget in einen AlertDialog zu setzen. Meine Durchführung seiner/ihrer Lösung sieht wie folgt aus:

private void showTimePicker() { 

    // This is implemented using an AlertDialog and a TimePicker instead of a TimePickerDialog 
    // because the TimePickerDialog implementation on Samsung does not work. 
    final Calendar c = Calendar.getInstance(); 
    c.setTimeInMillis(getInternalTimestamp()); 

    final TimePicker timePicker = new TimePicker(mContext); 
    timePicker.setIs24HourView(DateFormat.is24HourFormat(mContext)); 
    timePicker.setCurrentHour(c.get(Calendar.HOUR_OF_DAY)); 
    timePicker.setCurrentMinute(c.get(Calendar.MINUTE)); 

    final AlertDialog timePickerDialog = new AlertDialog.Builder(mContext) 
      .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { 
       @Override 
       public void onClick(DialogInterface dialog, int which) { 
        // user clicked OK - store the result, perhaps by using a callback: 
        // myCallback.onTimeSet(timePicker, timePicker.getHour(), timePicker.getMinute(); 
       } 
      }) 
      .setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() { 
       @Override 
       public void onClick(DialogInterface dialog, int which) { 
        dialog.dismiss(); 
       } 
      }) 
      .setView(timePicker).show(); 
} 

Nicht schön, aber es funktioniert (für mich) und es ist nicht so hässlich wie ich befürchtet hatte.