Autore Topic: Impostare testo ListView secondo la lingua del device  (Letto 780 volte)

Offline FraDiz98

  • Nuovo arrivato
  • *
  • Post: 11
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Next
  • Sistema operativo:
    Windows 7 Ultimate 64 bit
Impostare testo ListView secondo la lingua del device
« il: 26 Giugno 2012, 11:58:45 CEST »
0
Salve a tutti ragazzi , ho creato due ContentView XML , il primo contiene la lingua inglese e il secondo la lingua italiana...
Cercando sul web ho trovato la funzione:
Codice (Java): [Seleziona]
Locale.getDefault().getDisplayLanguage() , che serve a restituire la lingua in uso sul dispositivo.
Eseguendo un LogCat per vedere se Locale.getDefault().getDisplayLanguage() funziona correttamente :
Codice (Java): [Seleziona]
Log.i("Language",Locale.getDefault().getDisplayLanguage()); mi restituisce il valore String "italiano".
Tuttavia adesso volevo settare il ContentView a seconda della lingua , ma usando il codice qui sotto l'uguaglianza non viene rispettata e viene mostrato il ContentView inglese:

Codice (Java): [Seleziona]
  if(Locale.getDefault().getDisplayLanguage() == "italiano"){setContentView(R.layout.italiano;}
else{setContentView(R.layout.english;}

Volevo sapere quale fosse il problema..."italiano" e Locale.getDefault().getDisplayLanguage() hanno anche lo stesso tipo (String)...
Aspetto vostre risposte  ;-)

Offline bradipao

  • Moderatore globale
  • Utente storico
  • *****
  • Post: 4043
  • keep it simple
  • Respect: +567
    • Github
    • Google+
    • bradipao
    • Mostra profilo
  • Dispositivo Android:
    Nexus 5
  • Play Store ID:
    Bradipao
  • Sistema operativo:
    W7
Re:Impostare testo ListView secondo la lingua del device
« Risposta #1 il: 26 Giugno 2012, 12:13:58 CEST »
+1
A parte il fatto che la localizzazione sarebbe molto più facilmente gestibile con i qualificatori delle risorse (file di stringhe differenti in values-it values-de etc).

Nel tuo caso il problema è che in Java la comparazione di uguaglianza tra stringhe NON si fa con ==.
NON rispondo a domande nei messaggi privati
Bradipao @ Play Store

Offline Ricky`

  • Amministratore
  • Utente storico
  • *****
  • Post: 3489
  • Respect: +507
    • Github
    • Google+
    • rciovati
    • Mostra profilo
Re:Impostare testo ListView secondo la lingua del device
« Risposta #2 il: 26 Giugno 2012, 12:15:22 CEST »
+1
Non serve fare una cosa del genere, basta che crei due versioni dello stesso file e lo metti rispettivamente in layout-it e layout-en. Sarà il sistema a caricare in automatico la versione secondo la lingua del dispositivo.

Offline FraDiz98

  • Nuovo arrivato
  • *
  • Post: 11
  • Respect: 0
    • Mostra profilo
  • Dispositivo Android:
    Samsung Galaxy Next
  • Sistema operativo:
    Windows 7 Ultimate 64 bit
Re:Impostare testo ListView secondo la lingua del device
« Risposta #3 il: 26 Giugno 2012, 12:21:04 CEST »
0
Grazie mille ragazzi  ;-) ora provo a sistemare il codice  :D
@bradipao:grazie mille , è la prima volta che opero con stringhe , quindi pensavo che la comparazione si facesse allo stesso modo
@Ricky:grazie anche a te Ricky , non conoscevo questo "giochetto" con la denominazione delle folder dei layout  ;-)

Penso a questo punto di aver risolto ;)
Grazie ancora ragazzi  ;-)