私は多言語アプリケーションを作成しようとしていますが、私のホームページは画像と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;
}
}
});
}
}
'string [] textoList [] = getResources()。getStringArray(R.array.itens);' oncreateのstrings.xmlから。 'String [] textoList = r.getStringArray(R.array.itens);'があることに注意してください。 'getResources(')にはコンテキストが必要です。アクティビティが作成されると、コンテキストは使用可能になります。コード内でコードを動かす – Raghunandan
何がエラー –
「しかし、私はJavaでリストを作成すべきではないが、strings.xmlファイル内にすでに作成されている配列を使用すべきであることに気が付いた」 - String [] textoList' is not 'List'では、すでにリソースから直接得られた文字列の配列を使用しています。 –