2012-01-18 15 views
28
game.multiplayer = bundle.getString("multiplayer" ,null); 

está dando el error:java.lang.NoSuchMethodError: android.os.Bundle.getString

java.lang.NoSuchMethodError: android.os.Bundle.getString 

Otros métodos como

game.word.word = bundle.getStringArray("word"); 

trabajo fino.

¿Alguien alguna idea?

+0

versión de Android que está usando? –

Respuesta

61

getString (key, defValue) se agregó en API 12. Use getString (clave), ya que esto devolverá nulo si la clave no existe.

+3

Saludos. Es un pequeño error ya que Eclipse no muestra ningún error si su API objetivo es 12 o superior. – georgiecasey

+1

Entonces, ¿por qué no genera errores de tiempo de compilación al crear espacio de trabajo para API inferiores a 12? – VSB

+0

muchas gracias por su respuesta –

0

Prueba esto:

game.multiplayer = bundle.getString("multiplayer"); 
1

El método getString(String key, String defaultValue) en la clase Bundle se añadió en el nivel API 12 (que es Android 3.1, por lo que yo recuerdo). Si está utilizando una versión anterior, deberá usar una de las alternativas disponibles en niveles de API anteriores (consulte el enlace).

2

sólo tiene que utilizar esta función:

public static String getStringFromBundle(Bundle bundle, String key, String defaultValue){ 
    if (Build.VERSION.SDK_INT < 12){ 
     String returns = bundle.getString(key); 
     if(returns==null) returns = defaultValue; 

     return returns; 
    } else 
     return bundle.getString(key, defaultValue); 
} 
0

Uso Al igual que este ejemplo

Intent intent = getIntent(); 
String fName = intent.getStringExtra("fname"); 
String lName = intent.getStringExtra("lname"); 
Cuestiones relacionadas