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

sta dando l'errore:java.lang.NoSuchMethodError: android.os.Bundle.getString

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

altri metodi come

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

funzionano bene.

Qualche idea?

+0

Quale versione di Android stai usando? –

risposta

61

getString (chiave, defValue) è stato aggiunto in API 12. Utilizza getString (chiave), in quanto restituirà null se la chiave non esiste.

+3

Cheers. Questo è un bel po 'come Eclipse non mostra errori se l'API di destinazione è 12 o superiore. – georgiecasey

+1

Quindi, perché non genera errori di compilazione del tempo quando si crea un'area di lavoro per API inferiori a 12? – VSB

+0

grazie mille per la risposta –

0

Prova questo:

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

Il metodo getString(String key, String defaultValue) nella classe Bundle è stata aggiunta nel livello di API 12 (che è Android 3.1, per quanto mi ricordo). Se stai utilizzando una versione precedente, dovrai utilizzare una delle alternative disponibili nei precedenti livelli API (consulta il link).

2

Basta usare questa funzione:

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

Usa come in questo esempio

Intent intent = getIntent(); 
String fName = intent.getStringExtra("fname"); 
String lName = intent.getStringExtra("lname"); 
Problemi correlati