我正在开发一个带有枚举的应用程序来填充与它们相关的旋转器和图片。当我试图将旋转文本引用到strings.xml,以便在电话上的语言中填充文本的旋转器时,我只得到号码而不是文本。getNombres()用于填充主活动中的旋转器。
以下是代码:
public enum TipoLugar {
OTROS(R.string.otros, R.drawable.otros),
RESTAURANTE(R.string.restaurante ,R.drawable.restaurante),
BAR(R.string.restaurante , R.drawable.bar),
COPAS(R.string.copas , R.drawable.copas),
ESPECTACULO(R.string.restaurante , R.drawable.espectaculos),
HOTEL(R.string.hotel , R.drawable.hotel),
COMPRAS(R.string.compras , R.drawable.compras),
EDUCACION( R.string.educacion ,R.drawable.educacion),
DEPORTE(R.string.deporte , R.drawable.deporte),
NATURALEZA(R.string.naturaleza , R.drawable.naturaleza),
GASOLINERA(R.string.gasolinera , R.drawable.gasolinera),
VIVIENDA(R.string.vivienda , R.drawable.vivienda),
MONUMENTO( R.string.monumento ,R.drawable.monumento);
private final int texto;
private final int recurso;
TipoLugar(int texto,int recurso) {
this.texto = texto;
this.recurso = recurso;
}
public String getTexto() {
return String.valueOf(texto);
}
public int getRecurso() {
return recurso;
}
public static String[] getNombres() {
String[] resultado = new String[TipoLugar.values().length];
for (TipoLugar tipo : TipoLugar.values()) {
resultado[tipo.ordinal()] = String.valueOf(tipo.texto);
}
return resultado;
} }发布于 2017-11-11 14:07:59
两种方式:
首先,如果方法在MainActivity中,则从方法中删除静态关键字,并将方法更改为:
public String[] getNombres() {
String[] resultado = new String[TipoLugar.values().length];
for (TipoLugar tipo : TipoLugar.values()) {
resultado[tipo.ordinal()] = getString((tipo.texto));
}
return resultado;
}第二种方法是保留静态单词,但现在每次调用方法时都必须传递Context:
public static String[] getNombres(Context context) {
String[] resultado = new String[TipoLugar.values().length];
for (TipoLugar tipo : TipoLugar.values()) {
resultado[tipo.ordinal()] = context.getString((tipo.texto));
}
return resultado;
}然后在MainActivity中以这种方式调用您的方法
getNombres(this); 从这里您将得到Strings而不是ints,因为您将从String获得字符串值!
https://stackoverflow.com/questions/47238132
复制相似问题