Traduzione App in "MainActivity.java"

di il
2 risposte

Traduzione App in "MainActivity.java"

Buongiorno a tutti,
sono un paio di giorni che cerco sul web una soluzione al problema della traduzione delle "parole" in base alla lingua di appartenenza del dispositivo.
Per essere chiari, conosco il Traslation Editor e come usarlo ma questo funziona solo per le parti compilate nella "activity_main.xml" tramite la stringa
android:text="@string/NOMEDELLASTRINGA"
Però durante la fase di programmazione, ovvero in "MainActivity.java" non riesco a richiamare la risorsa.
Per esempio:
Pulsante.setText("Premi qui per iniziare");
Come faccio a dirgli che deve, appunto in base alla lingua di appartenenza del dispositivo, qualora fosse imposta su inglese fargli scrivere "Click here to start" o in spagnolo "Haga clic aquí para comenzar"?
Grazie mille anticipatamente per la vostra collaborazione

2 Risposte

  • Re: Traduzione App in "MainActivity.java"

    Ho trovato la soluzione...molto più facile del previsto, ci sono due soluzioni basta scrivere il seguente codice:

    SOLUZIONE A =
    Pulsante.setText(getResources().getString( R.string.NOME_STRINGA ));
    oppure, che viene più semplice
    SOLUZIONE B =
    Pulsante.setText(R.string.NOME_STRINGA ));
    quindi per essere ancora più chiari, per la Soluzione A, aggiungere
    getResources().getString( R.string.NOME_STRINGA )
    oppure per la Soluzione B, aggiungere
    R.string.NOME_STRINGA
    al posto del testo inserito tra le parentesi, comprese le virgolette
    pulsante.setText(INSERIRE QUI IL CODICE SOPRA INDICATO)
  • Re: Traduzione App in "MainActivity.java"

    Per utilizzarla nei fragment puoi utilizzare varie possibilità ...
    Io nelle app creo una Singleton ( ovvero una classe ad istanza singola ) dove passo il context in modo di averlo ovunque ..
    altrimenti puoi usare getactvity().getcontext() ma .. a volte capita che ti serva avere il context in altri posti dove non cìè un fragment o una activity che te lo passa... e poi con la singleton puoi storare variabili ed averle in tutta la tua app quando le vuoi..
    nel tuo caso per le stringhe di testo getactvity().getcontext().getString( R.string.NOME_STRINGA ) .. se sei in un fragment ..
    puoi instanziare il context anche nella chiamata della classe ...
    Class piopio extend quellochevui {

    private Context _context

    public piopio(Context context) {
    this._context = context;
    }

    così quando chiami la classe gli passi il context .. funziona anche nei fragment
    se chiami la classe dal mainactivity ...
    ricordati di istanziare la classe con new piopio(this) in modo gli passi appunto il context.
    Divertiti
Devi accedere o registrarti per scrivere nel forum
2 risposte