2010-05-22 7 views
18

Desidero aggiungere un intero dizionario medico al mio telefono Android (Moto Droid). Vorrei poter inviare messaggi di testo e avere le parole mediche nel testo prevedibile.Aggiungi parole a UserDictionary di Android

Ho cercato di scrivere una piccola app che avrebbe portato a termine questa operazione, ma tutto ciò che provo l'app si interrompe all'avvio. Non ho mai scritto un'app per una piattaforma mobile, quindi è la prima volta per me. Ecco cosa non funziona correttamente.

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); 
} 

}

Sembra così semplice da fare, ma io sono così bloccato. Grazie per tutto l'aiuto che potete fornire.

MODIFICA: Devo dire che sto ricevendo questo errore per Android 2.1 nell'AVD (dispositivo virtuale).

EDIT 2:User Dictionary si trova nell'API Android. addWord è un metodo statico. Non dichiaro UserDictionary perché utilizzo solo il metodo statico. Sono passati anni da quando ho sviluppato qualcosa in Java e questo è il mio primo tentativo di sviluppo mobile, quindi non so se sto facendo qualcosa di sbagliato.

+0

è un nome prodotto "Android"? Molte persone, come me !, potrebbero essere confuse dal riferimento. L'azione sembra essere qualcosa per un cellulare; se questo è il caso, dovresti dirlo nella domanda! –

+3

Ho fatto menzione del Motorola Droid. Immagino di aver pensato che basterebbero informazioni. Mi dispiace per quello – SaulBack

+2

Haha, facile là nonno; è un cellulare;) – Pierreten

risposta

9

Aggiungi questo al file di AndroidManifest.xml della tua app al di fuori dell'elemento <application>:

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

mm mm dove viene definito UserDictionary? Forse dovresti

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

o definire nella classe appena sotto la dichiarazione della classe il fermo degli impianti:

static UserDictionaryType UserDictionary; 

se questo è il caso è ovvio il motivo per cui la vostra applicazione si è schiantato ... (farlo in modalità kernel e "Houston abbiamo un problema" non puoi accedere al puntatore che non hai assegnato memoria anche in java che è il codice gestito ...)

ma ancora non ho familiarità con il tuo codice mostraci dove è stato definito e vorrei prova ad aiutarti di più ...

EDIT1: anche se UserDictionary esiste nell'API non dichiarato in uno ... è necessario dichiarare somewhere statico UserDictionary ud = new UserDictionary();

+0

Controlla la mia modifica 2. – SaulBack

0

Provare a impostare un punto di interruzione all'inizio dell'attività e passare il codice con il debugger. Questo dovrebbe aiutarti a capire se quella chiamata è davvero ciò che sta causando il crash e qual è l'eccezione di base.