
- Android Basics
- Android - Home
- Android - Overview
- Android - Environment Setup
- Android - Architecture
- Android - Application Components
- Android - Hello World Example
- Android - Resources
- Android - Activities
- Android - Services
- Android - Broadcast Receivers
- Android - Content Providers
- Android - Fragments
- Android - Intents/Filters
- Android - User Interface
- Android - UI Layouts
- Android - UI Controls
- Android - Event Handling
- Android - Styles and Themes
- Android - Custom Components
- Android Advanced Concepts
- Android - Drag and Drop
- Android - Notifications
- Location Based Services
- Android - Sending Email
- Android - Sending SMS
- Android - Phone Calls
- Publishing Android Application
- Android Useful Examples
- Android - Alert Dialoges
- Android - Animations
- Android - Audio Capture
- Android - AudioManager
- Android - Auto Complete
- Android - Best Practices
- Android - Bluetooth
- Android - Camera
- Android - Clipboard
- Android - Custom Fonts
- Android - Data Backup
- Android - Developer Tools
- Android - Emulator
- Android - Facebook Integration
- Android - Gestures
- Android - Google Maps
- Android - Image Effects
- Android - ImageSwitcher
- Android - Internal Storage
- Android - JetPlayer
- Android - JSON Parser
- Android - Linkedin Integration
- Android - Loading Spinner
- Android - Localization
- Android - Login Screen
- Android - MediaPlayer
- Android - Multitouch
- Android - Navigation
- Android - Network Connection
- Android - NFC Guide
- Android - PHP/MySQL
- Android - Progress Circle
- Android - ProgressBar
- Android - Push Notification
- Android - RenderScript
- Android - RSS Reader
- Android - Screen Cast
- Android - SDK Manager
- Android - Sensors
- Android - Session Management
- Android - Shared Preferences
- Android - SIP Protocol
- Android - Spelling Checker
- Android - SQLite Database
- Android - Support Library
- Android - Testing
- Android - Text to Speech
- Android - TextureView
- Android - Twitter Integration
- Android - UI Design
- Android - UI Patterns
- Android - UI Testing
- Android - WebView Layout
- Android - Wi-Fi
- Android - Widgets
- Android - XML Parsers
- Android Useful Resources
- Android - Questions and Answers
- Android - Useful Resources
- Android - Discussion
How to change app language when user selects language in Android?
This example demonstrates how do I change app language when user selects language.
Step 1 − Create a new project in Android Studio, go to File ⇒ New Project and fill all required details to create a new project.
Step 2 − Add the following code to res/layout/activity_main.xml.
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/rl" android:layout_width="match_parent" android:layout_height="match_parent" android:padding="10dp" tools:context=".MainActivity"> <Spinner android:id="@+id/spinner" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" /> <TextView android:id="@+id/string" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/thank_you" android:textSize="24sp" android:layout_centerInParent="true" android:layout_below="@id/spinner"/> </RelativeLayout>
Step 3 − Add the following code to src/MainActivity.java
import android.content.Intent; import android.content.res.Configuration; import android.content.res.Resources; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.DisplayMetrics; import android.view.View; import android.widget.AdapterView; import android.widget.ArrayAdapter; import android.widget.Spinner; import android.widget.Toast; import java.util.ArrayList; import java.util.List; import java.util.Locale; public class MainActivity extends AppCompatActivity { Spinner spinner; Locale locale; String currentLanguage = "en", currentLang; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); currentLanguage = getIntent().getStringExtra(currentLang); spinner = findViewById(R.id.spinner); List<String> list = new ArrayList<>(); list.add("Select Language"); list.add("English"); list.add("Español"); list.add("Français"); list.add("Hindi"); ArrayAdapter<String> adapter = new ArrayAdapter<>(this, R.layout.support_simple_spinner_dropdown_item, list); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spinner.setAdapter(adapter); spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View view, int position, long id) { switch (position) { case 0: break; case 1: setLocale("en"); break; case 2: setLocale("es"); break; case 3: setLocale("fr"); break; case 4: setLocale("hi"); break; } } @Override public void onNothingSelected(AdapterView<?> parent) { } }); } private void setLocale(String localeName) { if (!localeName.equals(currentLanguage)) { locale = new Locale(localeName); Resources res = getResources(); DisplayMetrics dm = res.getDisplayMetrics(); Configuration conf = res.getConfiguration(); conf.locale = locale; res.updateConfiguration(conf, dm); Intent refresh = new Intent(this, MainActivity.class); refresh.putExtra(currentLang, localeName); startActivity(refresh); } else { Toast.makeText(MainActivity.this, "Language already selected!", Toast.LENGTH_SHORT).show(); } } public void onBackPressed() { Intent intent = new Intent(Intent.ACTION_MAIN); intent.addCategory(Intent.CATEGORY_HOME); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); startActivity(intent); finish(); System.exit(0); } }
Step 4 − Create values-es, values-fr, values-hi and add the following code −
values-hi/strings.xml
<resources> <string name="app_name">Sample</string> <string name="thank_you">धन्यवाद</string> </resources>
values-fr/strings.xml
<resources> <string name="app_name">Sample</string> <string name="thank_you">Je vous remercie</string> </resources>
values-es/strings.xml
<resources> <string name="app_name">Sample</string> <string name="thank_you">Gracias</string> </resources>
strings.xml
<resources> <string name="app_name">Sample</string> <string name="thank_you">Thank you</string> </resources>
Step 5 − Add the following code to androidManifest.xml
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="app.com.sample"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
Let's try to run your application. I assume you have connected your actual Android Mobile device with your computer. To run the app from android studio, open one of your project's activity files and click Run icon from the toolbar. Select your mobile device as an option and then check your mobile device which will display your default screen −
- Related Articles
- How to change the language of an app when the user selects language using Kotlin?
- How to change the app language programmatically in android?
- How to change MySQL error message language?
- How to Get the current language in Android device?
- How to change status bar color to match app Android?
- How to change the spinner textSize and textColor in Android app?
- How to get android notifications when the app was closed?
- How to change status bar color to match app Android using Kotlin?
- How to Tackle Language Learning
- How can we get the current language selected in the Android device?
- How to start an activity when user clicks a notification in Android?
- How to change color of Button in Android when Clicked?
- How to change spinner text size and text color in Android App using Kotlin?
- How do I change current theme at runtime in my android app?
- How to merge to arrays in C language?
