Подтвердить что ты не робот

Добавить слова в Android UserDictionary

Я хочу добавить целый медицинский словарь к моему телефону 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);
}

}

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

EDIT: Я должен упомянуть, что я получаю эту ошибку для Android 2.1 в AVD (виртуальном устройстве).

EDIT 2: Пользовательский словарь находится в Android API. addWord - статический метод. Я не объявляю UserDictionary, потому что я просто использую один статический метод. Прошло много времени с тех пор, как я разработал что-то на Java, и это моя первая попытка любой мобильной разработки, поэтому я не знаю, что я делаю что-то неправильно.

4b9b3361

Ответ 1

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

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

Ответ 2

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

Ответ 3

мм мм, где определен UserDictionary? возможно, вам просто нужно

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

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

 static UserDictionaryType UserDictionary;

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

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

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