Point décimal ou virgule décimale dans Android

Y a-t-il un moyen simple de lire si l'ensemble de langue utilise une virgule décimale ou une virgule décimale?

  • Comment l'application Gmail atteint-elle sa hiérarchie de vue plate?
  • Glisser l'image avec Official Support Library 23.x. + bottomSheet comme google maps
  • Android: Canvas vs OpenGL
  • Comment donner (déjà acheté) une application Android au client en cadeau?
  • L'appareil photo ne remplace pas l'ancienne image si l'orientation change
  • Charger une chaîne spécifique à la langue à partir de la ressource?
  • Translucent StatusBar avec la couleur ActionBar dynamique dans Android
  • Pourquoi le constructeur ArrayAdapter <String> (new View.OnKeyListener () {}, int, String ) est indéfini
  • Définir l'ordre Z des vues de RelativeLayout dans Android
  • Le code Keycode pour Android minimise le bouton du clavier
  • Quand on s'appelle onRestoreInstanceState?
  • Comment lire le contenu de la fenêtre (à l'aide de l'accessibilitéService) et évoquer l'UI en utilisant le tirage au-dessus d'une autre permission d'application dans Android?
  • 4 Solutions collect form web for “Point décimal ou virgule décimale dans Android”

    Je crois que j'ai un moyen. Je n'ai jamais utilisé cela, je vous en prie, mais cela devrait certainement vous rapprocher, sinon là-bas:

    NumberFormat nf = NumberFormat.getInstance(); if (nf instanceof DecimalFormat) { DecimalFormatSymbols sym = ((DecimalFormat) nf).getDecimalFormatSymbols(); char decSeparator = sym.getDecimalSeparator(); } 

    Docs:

    NumberFormat , DecimalFormat , DecimalFormatSymbols

    Selon les docs DecimalFormat, apparemment appeler NumberFormat.getInstance () est sécurisé, mais peut renvoyer une sous-classe autre que DecimalFormat (l'autre option que je vois est ChoiceFormat). Je crois que pour la majorité des cas, il devrait s'agir d'un DecimalFormat, puis vous pouvez comparer decSeparator contre a , et . Pour voir quel format il utilise.

    J'ai essayé ceci et ça a bien fonctionné …

      String osVersion = System.getProperty("os.version"); String PhoneModel = android.os.Build.MODEL; String locale = this.getResources().getConfiguration().locale.getDisplayCountry(); char decSeparator = '*'; DecimalFormatSymbols dfs = new DecimalFormatSymbols(); decSeparator = dfs.getDecimalSeparator(); String androidVersion = android.os.Build.VERSION.RELEASE; String prologue = String.format("OS verson = %s PhoneModel = %s locale = %s DecimalFormatSymbol = [%c] androidVersion = %s ", osVersion ,PhoneModel, locale, decSeparator,androidVersion); 

    vous pouvez utiliser:

     Currency currency = Currency.getInstance(device_locale); 

    Que d'utiliser currency.getSymbol() pour symbole. Pour les paramètres régionaux des périphériques par défaut, vous pouvez utiliser:

     @TargetApi(Build.VERSION_CODES.N) public static Locale getCurrentLocale(Context c) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { return c.getResources().getConfiguration().getLocales().get(0); } else { //noinspection deprecation return c.getResources().getConfiguration().locale; } } 

    Vous ne savez pas s'il y a un moyen simple, mais vous pouvez tester quel ensemble de langues est utilisé et ensuite effectuer les modifications appropriées selon que cette langue utilise des virgules ou des décimales.

    coAndroid est un fan Android de Google, tout sur les téléphones Android, Android Wear, Android Dev et Android Games Apps.