向Android用户词典中添加单词

18

我想将整个医学字典添加到我的安卓手机(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);
}

}

这看起来很简单,但我却被卡住了。感谢您提供的任何帮助。

编辑:我应该提到,在AVD(虚拟设备)中使用Android 2.1时会出现此错误。

编辑2:用户词典在Android API中可以找到。addWord是一个静态方法。我不声明UserDictionary,因为我只使用了一个静态方法。我已经很久没有开发Java了,这是我第一次尝试移动开发,所以我不知道我是否做错了什么。


“Android”是一个产品名称吗?很多人,包括我在内,可能会被这个引用所困惑。这个动作听起来像是针对手机的某种操作;如果是这样的话,在问题中应该明确说明! - Richard T
3
我提到了摩托罗拉Droid,我想那应该足够信息了。对此很抱歉。 - SaulBack
2
哈哈,老爷爷别激动;这是一部手机 ;) - Pierreten
异常的日志记录是什么? - Robby Pond
大家好,我在使用UserDictionary时遇到了问题,希望能得到你们的意见。[链接](http://stackoverflow.com/questions/22124711/android-personal-dictionary-app-issues)... - Allzhere
显示剩余2条评论
3个回答

9

将以下内容添加到应用程序的AndroidManifest.xml文件中,放在<application>元素之外:

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

0

尝试在您的活动开始处设置断点,并使用调试器逐步执行代码。这应该有助于您确定是否真正是该调用导致了崩溃,以及潜在的异常是什么。


-2

mm mm UserDictionary 的定义在哪里?也许你应该只是

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

或者在类声明下面的类中定义以下内容:

 static UserDictionaryType UserDictionary;

如果是这种情况,你的应用程序崩溃的原因显而易见...(在内核模式下执行并且“休斯顿,我们有问题”,即使在受管理代码的Java中,您也无法访问未分配内存的指针...)

但是我不熟悉你的代码,请告诉我们它在哪里定义,我会尽力帮助你...

编辑1:即使UserDictionary存在于API中,您也没有声明一个... 您应该在某个地方声明静态UserDictionary ud = new UserDictionary();


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接