Добавить слова в пользовательский словарь Android - PullRequest
18 голосов
/ 22 мая 2010

Я хочу добавить медицинский словарь на свой телефон Android (Moto Droid). Я хотел бы иметь возможность отправлять текстовые сообщения и иметь медицинские слова в предсказуемом тексте.

Я пытался написать небольшое приложение, которое бы справилось с этим, но все, что я пытаюсь сделать, приложение вылетает при запуске. Я никогда не писал приложение для мобильной платформы, так что это первое для меня. Вот что не работает должным образом.

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

}

Кажется, это так просто сделать, но я так застрял. Спасибо за любую помощь, вы можете предоставить.

РЕДАКТИРОВАТЬ: Я должен упомянуть, что я получаю эту ошибку для Android 2.1 в AVD (виртуальное устройство).

РЕДАКТИРОВАНИЕ 2: Словарь пользователя находится в Android API. addWord - статический метод. Я не объявляю UserDictionary, потому что я просто использую один статический метод. Прошло уже много лет с тех пор, как я что-то разрабатывал на Java, и это моя первая попытка любой мобильной разработки, поэтому я не знаю, делаю ли я что-то не так.

Ответы [ 3 ]

9 голосов
/ 30 октября 2010

Добавьте это в файл AndroidManifest.xml вашего приложения вне элемента <application>:

<uses-permission android:name="android.permission.WRITE_USER_DICTIONARY"></uses-permission>
0 голосов
/ 07 июня 2010

Попробуйте установить точку останова в начале своей деятельности и пройтись по коду с помощью отладчика.Это должно помочь вам определить, действительно ли этот вызов является причиной сбоя, и каково основное исключение.

0 голосов
/ 27 мая 2010

мм мм, где определяется UserDictionary? может, тебе стоит просто

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

ИЛИ определите в классе прямо под объявлением класса следующее:

 static UserDictionaryType UserDictionary;

если это так, то очевидно, почему ваше приложение зависло ... (сделайте это в режиме ядра и "Хьюстон, у нас проблема"), вы не можете получить доступ к указателю, для которого вы не выделили память даже в Java, который является управляемым кодом ... )

но опять же я не знаком с вашим кодом, покажите нам, где он определен, и я постараюсь помочь вам больше ...

EDIT1: даже если UserDictionary существует в API, который вы не объявили ни для одного ... Вы должны объявить что-то статическое UserDictionary ud = new UserDictionary ();

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...