Autore Topic: Modifica lingua su Action Bar  (Letto 413 volte)

Offline Friz02

  • Utente junior
  • **
  • Post: 104
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    s3 neo Samsung
  • Sistema operativo:
    windows 7
Modifica lingua su Action Bar
« il: 08 Febbraio 2015, 12:38:02 CET »
0
Buona domenica a tutti,
ho gia seguito e partecipato ad altri topic come questo, in particolar modo il topic "forzare lingua da codice", relativo all'impostazione della lingua tramite un button forzando le impostazioni locali.
I codici suggeriti funzionano, l'unica criticità rimasta (forse qualcuno ha il mio stesso problema) è l'aggiornamento dei testi nelle ACTION BAR: questi non sempre si aggiornano con la lingua scelta tramite il button.
Mi spiego meglio, il codice di base utilizzato, suggerito nell'altro topic è
Codice (Java): [Seleziona]
Configuration configEN = new Configuration();
Context contextEN = getBaseContext();
Resources resEN = contextEN.getResources();
DisplayMetrics dmEN = resEN.getDisplayMetrics();
Locale localeEN = new Locale("en");
Locale.setDefault(localeEN);
configEN.locale = localeEN;
resEN.updateConfiguration(configEN, dmEN);
Poi, per vedere le modifiche attuate senza chiudere e riaprire l'app è bastato riavviare la prima l'activity..."l'activity home": con un intent sono passato dall'Activity Setting (dove c'è il button che imposta una nuova lingua) all'activity home e poi sono tornato di nuovo alla Setting.
In questo modo si aggiorna tutto perfettamente, testi sui layout, sui Toast, sui Dialog, sulle listview, ecc.....tranne che i titoli dell action bar di ogni activity (i testi che non si aggiornano sono quelli settati nel manifest ad esempio android:label="@string/titolo_activity_home").
Ho poi verificato un'altra cosa, che i testi nelle action bar in realtà si aggiornano solo nelle activity in cui non sono mai entrato prima di settare la lingua: mi spiego meglio, oltre alle activity succitate "home" e "setting" ho anche altre activity come ad esempio "archivie" e "examples", ora, se dopo aver aperto la mia app vado direttamente sull'activity "setting" è imposto la lingua in italiano, vedrò correttamente le modifiche anche sulle action bar delle altre activity (cioè sulla action bar di "archivie" sarà scritto "archivio" e su "examples" sarà scritto "esempi"), se invece prima di andare in "setting" entro ad esempio in "archivie", il titolo sull'action bar di questa activity resterà  "archivie" anzichè cambiare in "archivio".

Offline undead

  • Utente senior
  • ****
  • Post: 666
  • Respect: +113
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S6
  • Play Store ID:
    DrKappa
  • Sistema operativo:
    Windows 10 64-bit, Windows 8.1 64-bit
Re:Modifica lingua su Action Bar
« Risposta #1 il: 08 Febbraio 2015, 13:14:19 CET »
0
Ho avuto lo stesso problema proprio ieri sera!!  :D
Devi chiamare setTitle e setSubtitle nella oncreate in questo modo funziona.

 :-)

Offline Friz02

  • Utente junior
  • **
  • Post: 104
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    s3 neo Samsung
  • Sistema operativo:
    windows 7
Re:Modifica lingua su Action Bar
« Risposta #2 il: 08 Febbraio 2015, 17:20:43 CET »
0
Cioè lo imposto dinamicamente così?
Codice (Java): [Seleziona]
ActionBar actionBar = getActionBar();
        actionBar.setTitle(R.string.titolo_activity_home);
Ma se il tag in XML è lo stesso:
in values-it:
Codice (XML): [Seleziona]
<string name="titolo_activity_home">Esempi</string>in values-en:
Codice (XML): [Seleziona]
<string name="titolo_activity_home">Example</string>come fai ad ottenere il testo in inglese o in italiano. Dovrei mettere manualmente setTitle("Esempi" o "Example").
Sono fuori strada?

Offline undead

  • Utente senior
  • ****
  • Post: 666
  • Respect: +113
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S6
  • Play Store ID:
    DrKappa
  • Sistema operativo:
    Windows 10 64-bit, Windows 8.1 64-bit
Re:Modifica lingua su Action Bar
« Risposta #3 il: 08 Febbraio 2015, 17:48:40 CET »
0
Si io ho risolto chiamando settitle subito dopo aver impostato la lingua nella oncreate.
settitle(getstring(r.string.titolo)); :-)

Offline Friz02

  • Utente junior
  • **
  • Post: 104
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    s3 neo Samsung
  • Sistema operativo:
    windows 7
Re:Modifica lingua su Action Bar
« Risposta #4 il: 08 Febbraio 2015, 17:49:58 CET »
0
Ho verificato sulla mia app, in effetti è sufficiente fare
Codice (Java): [Seleziona]
ActionBar actionBar = getActionBar();
        actionBar.setTitle(R.string.titolo_activity_home);
rispettivamente in ogni activity e funziona alla grande!
All'inizio ero preoccupato che non potesse funzionare....pensavo male, in effetti "R.string.titolo_activity_home" (e così per tutte le altre activity) prenderà il valore della stringa in it o en in base all'impostazione del Locale da me precedentemente attuata.
Molto bene..... :-)....erano giorni che ci filavo dietro, non ragionavo più ormai, grazie mille!

Post unito: [time]08 Febbraio 2015, 18:11:01 CET[/time]
Tu sei riuscito a cambiare anche il titolo dell'app sotto l'icona nel display del tuo cell?

Post unito: [time]08 Febbraio 2015, 18:11:58 CET[/time]
Tu sei riuscito a cambiare anche il titolo dell'app sotto l'icona nel display del tuo cell?

Post unito: 08 Febbraio 2015, 18:20:44 CET
Credo che modificare il nome dell'app dinamicamente all'interno di una activity non sia possibile...
« Ultima modifica: 08 Febbraio 2015, 18:20:44 CET da Friz02, Reason: Merged DoublePost »

Offline undead

  • Utente senior
  • ****
  • Post: 666
  • Respect: +113
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S6
  • Play Store ID:
    DrKappa
  • Sistema operativo:
    Windows 10 64-bit, Windows 8.1 64-bit
Re:Modifica lingua su Action Bar
« Risposta #5 il: 08 Febbraio 2015, 18:31:33 CET »
0
Non ci ho provato, però sinceramente quello mi interessa relativamente.
Credo che essendo fuori dall'activity le impostazioni del locale per quella activity non dovrebbero influire nel normale lavoro del sistema.

 :-\

Offline Friz02

  • Utente junior
  • **
  • Post: 104
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    s3 neo Samsung
  • Sistema operativo:
    windows 7
Re:Modifica lingua su Action Bar
« Risposta #6 il: 08 Febbraio 2015, 18:38:13 CET »
0
Lo credo anch'io....in ogni caso un modo per settare il nome dell'app dovrebbe esserci, farò qualche ricerca.

Offline undead

  • Utente senior
  • ****
  • Post: 666
  • Respect: +113
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy S6
  • Play Store ID:
    DrKappa
  • Sistema operativo:
    Windows 10 64-bit, Windows 8.1 64-bit
Re:Modifica lingua su Action Bar
« Risposta #7 il: 08 Febbraio 2015, 18:39:57 CET »
0
Se trovi qualcosa posta pure la soluzione!  :-P

Offline Friz02

  • Utente junior
  • **
  • Post: 104
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    s3 neo Samsung
  • Sistema operativo:
    windows 7
Re:Modifica lingua su Action Bar
« Risposta #8 il: 09 Febbraio 2015, 18:11:15 CET »
0
Se trovo qualcosa in merito volentieri....