2010-05-22 8 views
18

Chcę dodać cały słownik medyczny do mojego telefonu z Androidem (Moto Droid). Chciałbym móc wysyłać wiadomości tekstowe i mieć medyczne słowa w przewidywalnym tekście.Dodaj słowa do UserDictionary użytkownika Androida

Próbowałem napisać małą aplikację, która by to osiągnęła, ale wszystko, co próbuję, awarie aplikacji podczas uruchamiania. Nigdy nie napisałem aplikacji na platformę mobilną, więc jest to dla mnie pierwsze. Oto, co nie działa poprawnie.

public class WordAdd extends Activity { 
/** Called when the activity is first created. */ 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 


    UserDictionary.Words.addWord(this , "newMedicalWord", 1, UserDictionary.Words.LOCALE_TYPE_CURRENT); 
} 

}

Wydaje się więc proste do zrobienia, ale jestem tak zakleszczony. Dziękuję za pomoc, którą możesz udzielić.

EDYCJA: Powinienem wspomnieć, że otrzymuję ten błąd dla Androida 2.1 w AVD (urządzenie wirtualne).

EDIT 2:User Dictionary znajduje się w interfejsie API systemu Android. addWord jest metodą statyczną. Nie deklaruję UserDictionary, ponieważ używam tylko jednej statycznej metody. Minęły lata, odkąd stworzyłem coś w Javie i jest to moja pierwsza próba rozwoju urządzeń mobilnych, więc nie wiem, czy robię coś źle.

+0

Czy „android” nazwa produktu? Wielu ludzi, takich jak ja !, może być zdezorientowanych przez odniesienie. Ta akcja brzmi, jakby była czymś w rodzaju telefonu komórkowego; jeśli tak jest, powinieneś powiedzieć to w pytaniu! –

+3

Wspomniałem o Motorola Droid. Sądzę, że pomyślałem, że to wystarczy informacji. Przepraszam za to. – SaulBack

+2

Haha, łatwo tam dziadek; to telefon komórkowy;) – Pierreten

Odpowiedz

9

Dodaj do tego pliku AndroidManifest.xml swojej aplikacji na zewnątrz elementu <application>:

<uses-permission android:name="android.permission.WRITE_USER_DICTIONARY"></uses-permission> 
-2

mm mm gdzie zdefiniowano UserDictionary? Być może należy po prostu

UserDictionary = new UserDictionaryType(); 
UserDictionary.Words = new WordsType(); 

lub zdefiniować w klasie tylko w ramach deklaracji klasy do odłogowania:

static UserDictionaryType UserDictionary; 

czy to przypadek, że to oczywiste, dlaczego aplikacja rozbił ... (zrobić na trybie jądra i "Houston mamy problem" nie można uzyskać wskaźnika, że ​​nie przydzielono pamięci nawet w java, który jest zarządzanym kodem ...)

ale znowu nie jestem zaznajomiony z twoim kodem, pokaż nam, gdzie on się zdefiniował i chciałbym spróbuj Ci pomóc ...

EDIT1: nawet jeśli UserDictionary istnieje w API, którego nie zadeklarowałeś na jednym ... powinieneś zadeklarować somehwere static UserDictionary ud = new UserDictionary();

+0

Sprawdź moją edycję 2. – SaulBack

0

Spróbuj ustawić punkt przerwania na początku aktywności i krok po kodzie za pomocą debuggera. To powinno pomóc ci ustalić, czy to wywołanie naprawdę jest przyczyną awarii i jaki jest podstawowy wyjątek.

Powiązane problemy