Wie ändere ich die Sprache der App, wenn der Benutzer die Sprache auswählt?

Ich möchte, dass meine App drei Sprachen unterstützt: Spanisch, Portugiesisch und Englisch. Und geben Sie die Option zur Auswahl der Sprache in App.Ich habe gemacht

1) 3 Zeichenmappen drawable-es, drawable-pt, drawable.

2) Ordner mit 3 Werten values-es, values-pt, values.Change String.xml-Werte nach Sprachen.

Ich habe imageView, um die Sprache auszuwählen. Wenn ich auf das Menü klicke, wird die Option Englisch, Spanisch, Portugiesisch geöffnet.

Ich habe das Gebietsschema in der App bei der Auswahl der Optionen anhand dieses Codes festgelegt

public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
        case R.id.en:
             Locale locale = new Locale("en"); 
             Locale.setDefault(locale);
             Configuration config = new Configuration();
             config.locale = locale;
             getBaseContext().getResources().updateConfiguration(config, getBaseContext().getResources().getDisplayMetrics());
             Toast.makeText(this, "Locale in English !", Toast.LENGTH_LONG).show();
             break;

        case R.id.pt:
             Locale locale2 = new Locale("pt"); 
             Locale.setDefault(locale2);
             Configuration config2 = new Configuration();
             config2.locale = locale2;
             getBaseContext().getResources().updateConfiguration(config2, getBaseContext().getResources().getDisplayMetrics());

             Toast.makeText(this, "Locale in Portugal !", Toast.LENGTH_LONG).show();
             break;

        case R.id.es:
             Locale locale3 = new Locale("es"); 
             Locale.setDefault(locale3);
             Configuration config3 = new Configuration();
             config3.locale = locale3;
             getBaseContext().getResources().updateConfiguration(config3, getBaseContext().getResources().getDisplayMetrics());

             Toast.makeText(this, "Locale in Spain !", Toast.LENGTH_LONG).show();
             break;


    }
         return super.onOptionsItemSelected(item);
}

Ich habe in Manifest-android: configChanges = "Gebietsschema"

Es funktioniert, aber es gibt ein Problem.

Problem:-

1) Bei Auswahl der Sprache ändert sich der Bildschirm, der aus dem Bild der Sprachauswahl besteht, nicht, andere Bildschirme ändern sich jedoch.

2) Ändern Sie nach der Ausrichtung die App-Wiederherstellungssprache entsprechend der Ländereinstellung des Telefons.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage