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

daje błąd:java.lang.NoSuchMethodError: android.os.Bundle.getString

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

Inne metody, takie jak

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

działać prawidłowo.

Czy ktoś ma jakiś pomysł?

+0

Jaka wersja Androida używasz? –

Odpowiedz

61

getString (klucz, defValue) został dodany w API 12. Użyj getString (klucz), ponieważ zwróci on wartość null, jeśli klucz nie istnieje.

+3

Pozdrawiam. To trochę miło, bo Eclipse nie pokazuje żadnych błędów, jeśli twój docelowy API ma 12 lub więcej. – georgiecasey

+1

Dlaczego więc nie prowadzi do kompilacji błędu czasu podczas budowania obszaru roboczego dla API niższych niż 12? – VSB

+0

wielkie dzięki za odpowiedź –

0

Spróbuj:

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

Sposób klasy BundlegetString(String key, String defaultValue) dodano poziomu API 12 (to Android 3.1, w miarę jak przypomnieć). Jeśli używasz wcześniejszej wersji, musisz użyć jednej z alternatyw dostępnych na wcześniejszych poziomach API (zobacz link).

2

Wystarczy użyć tej funkcji:

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

używać jak tym przykładzie

Intent intent = getIntent(); 
String fName = intent.getStringExtra("fname"); 
String lName = intent.getStringExtra("lname"); 
Powiązane problemy