Android: Java: usando un recurso de cadena en un Toast
Mi código es:
public static void ToastMemoryShort (Context context) { CharSequence text = getString(R.string.toast_memoryshort); //error here Toast.makeText(context, text, Toast.LENGTH_LONG).show(); return; }
Pero estoy recibiendo "No se puede hacer una referencia estática al método no estático getString (int) del tipo Context" en Eclipse. Estoy intentando conseguir listo para la localización de mi app (conseguir todas las secuencias codificadas duras en recursos), así que donde tengo:
- ¿Cómo desarrollar una caminata a través del diálogo que aparece en el primer lanzamiento?
- ¿Cómo mantener la consistencia con XML drawables a través de diferentes tamaños de pantalla?
- ¿Cuál es el tiempo de espera predeterminado de usar HttpGet y DefaultHttpClient?
- Adición de una imagen de fondo a un diseño xml de fondo
- Dónde guardar los archivos de texto en el proyecto de Android en eclipse
getString(R.string.toast_memoryshort)
Anteriormente tenía una cadena codificada difícil que estaba bien.
No estoy seguro de lo que está pasando aquí (Java noob). ¿Puede alguien aclararme por favor?
Muchas gracias
Baz
- Cómo crear un proyecto de biblioteca de android en android?
- Portar un juego SDL 2.0 a Android
- Cadena está siendo truncado cuando es demasiado largo
- Patrón de diseño para capturar excepciones no controladas en AsyncTask
- Análisis de la matriz JSON con una sub-matriz con GSON?
- FragmentActivity TabHost con Fragmento y Actividad
- android, cómo obtener lista de directorios?
- Cómo mostrar 3 fragmentos dentro de PageViewer
Solo usa esto en su lugar:
MakeText (Context context, int resId, int duration) Hacer un tostado estándar que sólo contiene una vista de texto con el texto de un recurso.
Desde http://developer.android.com/reference/android/widget/Toast.html
Cambiar a
public static void ToastMemoryShort (Context context) { Toast.makeText(context, context.getString(R.string.toast_memoryshort), Toast.LENGTH_LONG).show(); return; }
Usted podría hacer su tostada más genérico como este:
public void toast(String msg){ Context context = getApplicationContext(); CharSequence text = msg; int duration = Toast.LENGTH_SHORT; Toast toast = Toast.makeText(context, text, duration); toast.show(); }
Luego solo llame cuando necesite esto:
toast( "My message hardcoded" );
O usando strngs.xml como este:
toast( this.getString(R.string.toast_memoryshort) );
Deberías cambiar
CharSequence text = getString(R.string.toast_memoryshort); //error here
para:
CharSequence text = context.getString(R.string.toast_memoryshort);
La función getString
se implementa en Contexto # getString (int)