2010-05-22 11 views
18

Quiero agregar un diccionario médico completo a mi teléfono Android (Moto Droid). Me gustaría poder enviar mensajes de texto y tener las palabras médicas en el texto predecible.Agregar palabras al UserDictionary de Android

He estado tratando de escribir una pequeña aplicación que logre esto, pero todo lo que pruebo la aplicación falla al iniciar. Nunca he escrito una aplicación para una plataforma móvil, así que es la primera vez para mí. Esto es lo que no funciona correctamente.

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

}

Parece tan sencillo de hacer, sin embargo, estoy tan atascados. Gracias por cualquier ayuda que usted nos pueda proporcionar.

EDIT: Debo mencionar que estoy recibiendo este error para Android 2.1 en el AVD (dispositivo virtual).

EDIT 2:User Dictionary se encuentra en la API de Android. addWord es un método estático. No declaro UserDictionary porque solo uso el método estático. Han pasado años desde que desarrollé algo en Java y este es mi primer intento en cualquier desarrollo móvil, así que no sé si estoy haciendo algo mal.

+0

es un nombre de producto "androide"? ¡Mucha gente, como yo !, podría confundirse con la referencia. La acción suena como si fuera algo para un teléfono celular; si este es el caso, ¡deberías decirlo en la pregunta! –

+3

Mencioné el Motorola Droid. Creo que pensé que sería suficiente información. Lo siento por eso. – SaulBack

+2

Jaja, fácil que abuelo; es un teléfono celular;) – Pierreten

Respuesta

9

Añadir esto a archivo AndroidManifest.xml de su aplicación fuera del elemento <application>:

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

mm mm donde se define UserDictionary? tal vez usted sólo debe

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

o definir en la clase justo debajo de la declaración de la clase del barbecho:

static UserDictionaryType UserDictionary; 

si ese es el caso, es obvio por qué su aplicación se estrelló ... (hacerlo en modo de núcleo y "Houston tenemos un problema" no se puede acceder al puntero que no asignó la memoria, incluso en Java que es código administrado ...)

pero de nuevo no estoy familiarizado con su código muéstrenos donde se definió y yo lo haría intenta ayudarte más ...

EDIT1: incluso si existe el UserDictionary en la API que no declaró en uno ... debe declarar algunos que son estáticos UserDictionary ud = new UserDictionary();

+0

Mira mi edición 2. – SaulBack

0

Intente establecer un punto de interrupción al comienzo de su actividad y recorrer el código con el depurador. Esto debería ayudarlo a aislar si esa llamada es realmente lo que está causando el bloqueo, y cuál es la excepción subyacente.

Cuestiones relacionadas