2017-09-27 8 views
1

fehlt habe ich ein paar Telefone, eine Infinix heiße Note 4 Android 6.0 Eibisch und ein Nexus 6P läuft den neuesten und besten Android 8.0 Oreo läuft.Alertdialog in Android 8.0 Oreo Nachrichtentext

Ich teste eine App, mit der Benutzer nur die Daten einzugeben, wenn sie in der Nähe von einem bestimmten Ort sind, und ich bemerkte, dass auf Oreo keine meiner Nachrichten in AlertDialogs gezeigt. Sie erscheinen als leer (oder vielleicht in weißem Text oder etwas gefärbt).

Ich bin in Afrika und ich bin unterstützt Geräte mit Android 9 (alte Telefone sind nie weggeworfen und nur weitergegeben verwendet, bis sie verfallen) so gradle Einstellungen sind
minSdkVersion 9
targetSdkVersion 22
compileSdkVersion 25
buildToolsVersion '25 .0.0 '

Ich habe Screenshots der Nexus- und Infinix-Dialoge angehängt. Wer weiß, wie man dieses Verhalten umgeht? Im Folgenden finden Sie auch den genauen Code in beiden Geräten verwendet

Vielen Dank im Voraus für jeden, der die Zeit, diese Frage zu prüfen, erfolgt.

private void showNotNearOutlet(ProximityToOutlet proximityToOutlet, String OutletName) { 
    String strMsg = ""; 
    int intAllowedProximity = GSR.getSavedSettings.getAllowedProximityToOutletMeters(); 

    float floatDistanceFromOutlet = proximityToOutlet.getFltDistanceBetweenCurrentLocAndOutlet(); 
    String strDistance = String.valueOf(df.format(floatDistanceFromOutlet)) + "m"; 
    if (floatDistanceFromOutlet > 1000) { 

     strDistance = df.format(floatDistanceFromOutlet/1000) + "Km"; 
    } 
    final AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(this); 
    alertDialogBuilder.setTitle("Cannot start outlet!"); 
    if (floatDistanceFromOutlet != -99) { /*means we cant get a good location fix at the moment*/ 
     strMsg = "GPS shows your current location as being " + strDistance + " from " + OutletName + " .\n\nYou must be at least " + intAllowedProximity + " Meters near the Outlet to start it."; 
    } else { 
     strMsg = "Cannot Start outlet because your current GPS position is undetermined.\nTap on 'Locate Me' button and wait till you get a GPS Fix or Accuracy is within 20meters.\n\nTo start an Outlet you must be within " + intAllowedProximity + " meters of it."; 
    } 


    alertDialogBuilder.setCancelable(true); 
    alertDialogBuilder.setIcon(R.drawable.red_gps_icon); 
    alertDialogBuilder.setMessage(strMsg); 
    alertDialogBuilder.setPositiveButton("Close", new DialogInterface.OnClickListener() { 

     public void onClick(DialogInterface dialog, int which) { 
      //fetchOutletsForSpinner(); 
      setSpinnerToSelectOutlet(); 
      dialog.dismiss(); 
     } 

    }); 


    alertGPS = alertDialogBuilder.create(); 
    if (!MainActivity.this.isFinishing()) { 
     //show dialog 
     alertGPS.show(); 
     blnGPSAlertIsVisible = true; 
    } 


} 

[Fehlender AlertDialog-Text in Android Oreo (links). Interessanterweise fehlt GPS-Symbol in Versionen vor 8.0] [1] 1 (rechts)

enter image description here

Antwort

2

android.util.FloatMath in API-Ebene 22, verwendet java.lang.Math für API veraltet war> 21 statt.

Auch compileSdkVersion 25-26, to '26 .0.2' '25 .0.0' buildToolsVersion ändern

+0

Vielen Dank, Alexander. Deine Vorschläge haben wunderbar funktioniert. Die Alert-Dialoge zeigen nun Inhalte in Oreo. Prost. – KuriaNdungu

+0

Ich fand auch, dass es ein Problem mit meinen Dialog Themes gab, wo ich Vordergrund und Hintergrundeinstellung beide weiß hatte, was natürlich dazu führte, dass der weiße Text nicht sichtbar war. – KuriaNdungu

Verwandte Themen