2017-07-20 21 views
7

InputMethodManager là một dịch vụ mà ứng dụng có thể sử dụng để tương tác với bàn phím hệ thống. Các biên tập viên như EditText cũng sử dụng nó để gián tiếp thông báo cho bàn phím của các thay đổi (ví dụ: updateSelection).Tôi có thể sử dụng Android InputMethodManager trên bàn phím trong ứng dụng tùy chỉnh không?

Tôi có thể lấy một tham chiếu đến InputMethodManager như

InputMethodManager imm = (InputMethodManager) context.getSystemService(Context.INPUT_METHOD_SERVICE); 

vấn đề này của tôi là điều này có vẻ là chỉ cho bàn phím của hệ thống. Tôi có thể sử dụng số InputMethodManager cho số custom in-app keyboard không? Nếu nó chỉ là một ứng dụng bị cô lập tôi sẽ không quan tâm nhưng tôi bao gồm một bàn phím tùy chỉnh trong một thư viện sẽ được sử dụng trong nhiều ứng dụng. Tôi cần một cách chuẩn để người biên tập giao tiếp với bàn phím.

Tôi có phải viết trình quản lý phương thức nhập của riêng mình hoặc có cách nào để sử dụng tiêu chuẩn InputMethodManager bằng bàn phím trong ứng dụng tùy chỉnh của mình không?

Cập nhật

Dưới đây là một số manh mối để làm thế nào tôi có thể thực hiện quản lý phương thức nhập liệu tùy chỉnh riêng của tôi nếu không có cách nào để sử dụng một tiêu chuẩn.

+0

Tôi quyết định đi tuyến đường tạo trình quản lý phương thức nhập tùy chỉnh của riêng mình. Tôi không nghĩ rằng nó có thể sử dụng hệ thống 'InputMethodManager' vì nó liên quan đến vấn đề an ninh với điện thoại. Tuy nhiên, tôi đã thêm tiền thưởng chỉ để chắc chắn trước khi tôi hoàn toàn từ bỏ ý tưởng. – Suragch

Trả lời

1

Bạn nên thực hiện của bạn.

InputMethodService cung cấp triển khai chuẩn của InputMethod, triển khai cuối cùng có thể lấy được và tùy chỉnh. Xem lớp cơ sở AbstractInputMethodService và giao diện InputMethod để biết thêm thông tin về các khái niệm cơ bản của việc viết các phương thức nhập.

1

Không, bạn không thể. Vì nếu bạn kế thừa từ InputMethodService, bàn phím của bạn sẽ khả dụng cho các ứng dụng khác. Chỉ có một cách để tạo bàn phím trong ứng dụng, nó đang sử dụng đơn giản View trong bố cục của bạn. Trong ví dụ này custom in-app keyboard, họ sử dụng InputMethodManager để kết nối với EditText.

+0

Xin lỗi, Lần đầu tiên tôi đã sai và không hiểu câu hỏi của bạn. Tôi đã cập nhật câu trả lời của mình. – fisher3421

+0

Ví dụ bạn đã liên kết là ví dụ của tôi. Nó không sử dụng 'InputMethodManager' để kết nối với' EditText'. Nó chỉ kết nối trực tiếp. Nhưng tôi muốn sử dụng 'InputMethodManager', đó là những gì dẫn đến câu hỏi này ở đây. – Suragch

+0

@Suragch Không thừa kế từ InputMethodManager, bạn không thể truy cập vào bàn phím – fisher3421

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