2010-05-22 31 views
18

Tôi muốn thêm toàn bộ từ điển y học vào điện thoại Android của mình (Moto Droid). Tôi muốn có thể gửi tin nhắn văn bản và có các từ y khoa trong văn bản có thể đoán trước được.Thêm từ vào UserDictionary

Tôi đã cố gắng viết một ứng dụng nhỏ có thể thực hiện việc này, nhưng mọi thứ tôi thử gặp sự cố khi khởi động ứng dụng. Tôi đã không bao giờ viết một ứng dụng cho một nền tảng di động vì vậy đó là một ứng dụng đầu tiên cho tôi. Đây là những gì không hoạt động đúng.

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

}

Có vẻ như rất đơn giản để làm, nhưng tôi rất khó khăn. Cảm ơn vì bất kì sự giúp đỡ nào của bạn.

EDIT: Tôi nên đề cập đến việc tôi nhận được lỗi này cho Android 2.1 trong AVD (thiết bị ảo).

CHỈNH SỬA 2:User Dictionary được tìm thấy trong API Android. addWord là một phương pháp tĩnh. Tôi không khai báo UserDictionary vì tôi chỉ sử dụng một phương thức tĩnh. Nó đã được lứa tuổi kể từ khi tôi phát triển bất cứ điều gì trong Java và đây là nỗ lực đầu tiên của tôi tại bất kỳ phát triển di động, vì vậy tôi không biết nếu tôi đang làm điều gì đó sai trái.

+0

là "android" một tên sản phẩm? Nhiều người, như tôi !, có thể bị nhầm lẫn bởi tham chiếu. Các hành động có vẻ như nó sẽ là một cái gì đó cho một điện thoại di động; nếu đây là trường hợp, bạn nên nói như vậy trong câu hỏi! –

+3

Tôi đã đề cập đến Motorola Droid. Tôi đoán tôi nghĩ đó là đủ thông tin. Xin lỗi vì điều đó. – SaulBack

+2

Haha, dễ dàng có ông nội; đó là một điện thoại di động;) – Pierreten

Trả lời

9

Thêm phần này vào tập tin AndroidManifest.xml của ứng dụng của bạn bên ngoài của phần tử <application>:

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

mm mm trong đó UserDictionary được xác định? có lẽ bạn nên chỉ

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

HOẶC định nghĩa trong lớp ngay dưới khai báo lớp các fallowing:

static UserDictionaryType UserDictionary; 

nếu đó là trường hợp nó rõ ràng lý do tại sao ứng dụng của bạn bị rơi ... (làm điều đó trên kernel mode và "Houston chúng tôi có một vấn đề" bạn không thể truy cập con trỏ mà bạn không phân bổ bộ nhớ cho ngay cả trong java được quản lý mã ...)

nhưng một lần nữa tôi không quen với mã của bạn cố gắng giúp bạn nhiều hơn ...

EDIT1: ngay cả khi UserDictionary tồn tại trong API bạn không khai báo trên một ... bạn nên khai báo somehwere static UserDictionary ud = new UserDictionary();

+0

Xem bản chỉnh sửa của tôi 2. – SaulBack

0

Thử đặt điểm ngắt khi bắt đầu hoạt động của bạn và bước qua mã bằng trình gỡ rối. Điều này sẽ giúp bạn tách biệt xem cuộc gọi đó thực sự là nguyên nhân gây ra sự cố và ngoại lệ cơ bản là gì.

Các vấn đề liên quan