2017-04-23 14 views
2

私は多言語アプリケーションを作成しようとしていますが、私のホームページは画像とtextViewsで作られたgridViewです。 Javaでリストを作成したとき(このように):gridView - 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."}; 

非常にうまくいった。しかし、私はJavaでリストを作成するのではなく、strings.xmlファイルですでに作成されている配列を使用して、私のアプリケーションを翻訳できるようにするべきだと気づきました。基本的には、この配列のテキストが必要です。これどうやってするの?

誰かが私に手を差し伸べることができますか?誰かがそれをテストしたい場合は、完全なコードは次のとおりです。

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);' oncreateのstrings.xmlから。 'String [] textoList = r.getStringArray(R.array.itens);'があることに注意してください。 'getResources(')にはコンテキストが必要です。アクティビティが作成されると、コンテキストは使用可能になります。コード内でコードを動かす – Raghunandan

+0

何がエラー –

+0

「しかし、私はJavaでリストを作成すべきではないが、strings.xmlファイル内にすでに作成されている配列を使用すべきであることに気が付いた」 - String [] textoList' is not 'List'では、すでにリソースから直接得られた文字列の配列を使用しています。 –

答えて

1

ewファイルがまだ存在しない場合は、にarray.xmlと表示されます。

<?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> 

そして、あなたはあなたの Activityから getResources().getStringArray(R.array.itens);を使用してそれらにアクセスすることができます:あなたは、あなたのような文字列を追加することができます。

1

はこれを試してみてください:

String[] textoList; 

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

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

し、以下のようにstrings.xmlでごitens配列:

<?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> 

・ホープ、この助けてくれる〜

+0

私の答えが役に立つと思われる場合は、正解とマークして投票することができます。前もって感謝します :) – FAT

関連する問題