2017-04-23 3 views
2

Ich versuche, eine mehrsprachige App zu erstellen, aber meine Homepage ist ein GridView aus Bildern und TextViews. Wenn ich eine Liste in Java (wie folgt) erstellt habe:gridView - Array in strings.xml

String textoList[] = {"Visto", "Alojamento", "C.P.F.", "Alimentação", "Carteirinha", "Guia", "Registro", "Informações", "Assistência", "Biblioteca", "Calendário", "Transporte", "INT", "Intérprete", "F.A.Q."}; 

es funktionierte sehr gut. Aber ich erkannte, dass ich keine Liste in Java erstellen sollte, sondern ein Array, das bereits in der strings.xml-Datei erstellt wurde, so dass meine App übersetzt werden kann. Grundsätzlich möchte ich die Texte von diesem Array. Wie kann ich das machen?

Kann mir bitte jemand eine Hand geben? Wenn jemand es testen möchte, der vollständige Code ist:

package br.com.unbparaestrangeiros.unbparaestrangeiros; 

import android.app.Activity; 
import android.content.Intent; 
import android.content.res.Resources; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.AdapterView; 
import android.widget.GridView; 

public class MainActivity extends Activity{ 
    GridView gridView; 

    Resources r = getResources(); 
    String[] textoList = r.getStringArray(R.array.itens); 

    //String textoList[] = {"Visto", "Alojamento", "C.P.F.", "Alimentação", "Carteirinha", "Guia", "Registro", "Informações", "Assistência", "Biblioteca", "Calendário", "Transporte", "INT", "Intérprete", "F.A.Q."}; 

    int textoImagem[] = {R.drawable.visto, R.drawable.alojamento, R.drawable.cpf, R.drawable.alimentacao, R.drawable.carteirinha, R.drawable.guia, R.drawable.registro, R.drawable.informacoes, R.drawable.assistencia, R.drawable.biblioteca, R.drawable.calendario, R.drawable.transporte, R.drawable.informacoes, R.drawable.interprete, R.drawable.perguntas}; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.inicio); 

     gridView = (GridView) findViewById(R.id.gridView); 

     GridAdapter adapter = new GridAdapter(MainActivity.this, textoImagem, textoList); 

     gridView.setAdapter(adapter); 

     gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
      @Override 
      public void onItemClick(AdapterView<?> parent, View view, int position, long id) { 
       switch (position) { 
        case 0: 
         Intent case0 = new Intent(MainActivity.this, Visto.class); 
         startActivity(case0); 
         break; 

        case 1: 
         Intent case1 = new Intent(MainActivity.this, Alojamento.class); 
         startActivity(case1); 
         break; 

        case 2: 
         Intent case2 = new Intent(MainActivity.this, CPF.class); 
         startActivity(case2); 
         break; 

        case 3: 
         Intent case3 = new Intent(MainActivity.this, Alimentacao.class); 
         startActivity(case3); 
         break; 

        case 4: 
         Intent case4 = new Intent(MainActivity.this, Carteirinha.class); 
         startActivity(case4); 
         break; 

        case 5: 
         Intent case5 = new Intent(MainActivity.this, Guia.class); 
         startActivity(case5); 
         break; 

        case 6: 
         Intent case6 = new Intent(MainActivity.this, Registro.class); 
         startActivity(case6); 
         break; 

        case 7: 
         Intent case7 = new Intent(MainActivity.this, Informacoes.class); 
         startActivity(case7); 
         break; 

        case 8: 
         Intent case8 = new Intent(MainActivity.this, Assistencia.class); 
         startActivity(case8); 
         break; 

        case 9: 
         Intent case9 = new Intent(MainActivity.this, Biblioteca.class); 
         startActivity(case9); 
         break; 

        case 10: 
         Intent case10 = new Intent(MainActivity.this, Calendario.class); 
         startActivity(case10); 
         break; 

        case 11: 
         Intent case11 = new Intent(MainActivity.this, Transporte.class); 
         startActivity(case11); 
         break; 

        case 12: 
         Intent case12 = new Intent(MainActivity.this, Assessoria.class); 
         startActivity(case12); 
         break; 

        case 13: 
         Intent case13 = new Intent(MainActivity.this, Interprete.class); 
         startActivity(case13); 
         break; 

        case 14: 
         Intent case14 = new Intent(MainActivity.this, Perguntas.class); 
         startActivity(case14); 
         break; 

       } 
      } 
     }); 
    } 

} 
+1

'String [] textoList [] = getResources(). GetStringArray (R.array.itens);' aus strings.xml in oncreate. Beachten Sie, dass Sie 'String [] textoList = r.getStringArray (R.array.itens);'. 'getResources (') benötigt einen Kontext. Der Kontext ist verfügbar, sobald eine Aktivität erstellt wurde. Verschieben Sie Ihren Code in onCreate – Raghunandan

+0

Was ist der Fehler –

+0

"Aber ich erkannte, dass ich nicht eine Liste in Java erstellen sollte, sondern ein Array verwenden, das bereits in der strings.xml-Datei erstellt wurde" - "String [] textoList" ist nicht eine 'List', verwenden Sie bereits ein Array von Strings, die direkt von den Ressourcen erhalten werden. –

Antwort

1

Erstellen Sie ein ew-Datei, wenn nicht bereits vorhanden array.xml in app/src/main/res/values. Sie können Ihre Strings wie so hinzufügen:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <string-array name="itens"> 
     <item>Visto</item> 
     <item>Alojamento</item> 
     <!--Add your other words here--> 
    </string-array> 
</resources> 

Und Sie können sie getResources().getStringArray(R.array.itens); von Ihrem Activity mit zuzugreifen.

1

Try this:

String[] textoList; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.inicio); 

    textoList = getResources().getStringArray(R.array.itens); 
} 

Und Ihre itens Array in strings.xml wie folgt:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    ............... 
    ...................... 
    <string-array name="itens"> 
     <item>Visto</item> 
     <item>Alojamento</item> 
     <item>C.P.F.</item> 
     <item>Alimentação</item> 
     <item>Carteirinha</item> 
     <item>Guia</item> 
     <item>Registro</item> 
     ................ 
     ....................... 
    </string-array> 
</resources> 

Hope this wird helfen ~

+0

Wenn meine Antwort nützlich erscheint, können Sie sie als richtige Antwort markieren und abstimmen. Danke im Voraus :) – FAT

Verwandte Themen