I have an app that is using Decimal.ToString(). My phone language is set to english, but when I call the Decimal.ToString() a ‘,’ is used as the decimal separation symbol. I don’t have any set culture call in my code so, I suppose this occurs because Monodroid resets its culture upon initialization. Can this be changed? Where is it searching for this information?
Thanks in advance.
Mono for Android determines your locale based on Locale information, specifically the default Locale‘s language and country. This information is consulted and cached at process startup.
If your phone is in one locale (e.g. German), you start an app (causing the process to detect German formatting), and you then change the locale and return to the app, the app will not see the Locale change. This is unfortunately a known bug (and I can’t think of a decent way to fix it :-(, with a variation for good measure.