代码之家  ›  专栏  ›  技术社区  ›  Dr.Kook

如何从位置更改城市名称语言?

  •  0
  • Dr.Kook  · 技术社区  · 6 年前

    在我的应用程序中,我希望从 纬度 经度
    为此,我写了下面的代码,但请告诉我 英语 语言,如 “德黑兰”

    但我想显示这个城市的名字 波斯语 例如 “±§”

    如何更改语言?

    我的代码:

    public class MainActivity extends Activity {
    
        private SimpleLocation mLocation;
        private Geocoder geocoder;
        private List<Address> addresses;
        private String cityName;
    
        @Override
        protected void onCreate(final Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
    
            // construct a new instance
            mLocation = new SimpleLocation(this);
    
            // reduce the precision to 5,000m for privacy reasons
            mLocation.setBlurRadius(5000);
    
            geocoder = new Geocoder(this, Locale.getDefault());
    
            // if we can't access the location yet
            if (!mLocation.hasLocationEnabled()) {
                // ask the user to enable location access
                SimpleLocation.openSettings(this);
            }
    
            final double latitude = mLocation.getLatitude();
            final double longitude = mLocation.getLongitude();
    
            try {
                addresses = geocoder.getFromLocation(latitude, longitude, 1);
                cityName = addresses.get(0).getAddressLine(0);
            } catch (IOException e) {
                e.printStackTrace();
            }
    
            findViewById(R.id.textView).setOnClickListener(new View.OnClickListener() {
    
                @Override
                public void onClick(View v) {
    
                    Toast.makeText(MainActivity.this, "" + cityName, Toast.LENGTH_SHORT).show();
                }
    
            });
        }
    
        @Override
        protected void onResume() {
            super.onResume();
            // make the device update its location
            mLocation.beginUpdates();
        }
    
        @Override
        protected void onPause() {
            // stop location updates (saves battery)
            mLocation.endUpdates();
    
            super.onPause();
        }
    }
    
    4 回复  |  直到 6 年前
        1
  •  2
  •   kishna.147    6 年前

    只需在下面的构造函数中传递区域设置:

    Geocoder geo = new Geocoder(MainActivity.this, new Locale("Your desired locale code"));
    
        2
  •  1
  •   Nik    6 年前

    使用区域设置更改文本视图

    Locale loc = new Locale("ar"); // change locale as per your requirement
    textView.setTextLocale(loc);
    textView.setText("Farsi");
    
        3
  •  0
  •   Faraz    6 年前

    而不是通过 Locale.getDefault() 通过 new Locale("fa_IR")

    和使用 addresses.get(0).getLocality() 获取城市名称。

    请参阅支持的区域设置列表。

    https://stackoverflow.com/a/7989085/5722608

        4
  •  0
  •   RAAAAM    6 年前

    使用字符串更改语言的用户本地化。xml。pl遵循 https://developer.android.com/guide/topics/resources/localization.html 了解更多有关android应用程序本地化的信息。