私は、特定のアプリがコミットコンテンツAPIをサポートしているかどうかを知る必要がある仮想キーボードを作成しましたか?アプリがコミットコンテンツAPIをサポートしているかどうか通知を受け取りますか?
私はキーボードの中でカスタムイメージを使用しているので、このチェックが必要です。私はInputMethodServiceを使用して、そのすでに以下のようなものをチェックするためにデモアプリケーションで行われています
:
ここ@Override
public void onStartInputView(EditorInfo info, boolean restarting) {
mGifButton.setEnabled(mGifFile != null && isCommitContentSupported(info, MIME_TYPE_GIF));
mPngButton.setEnabled(mPngFile != null && isCommitContentSupported(info, MIME_TYPE_PNG));
mWebpButton.setEnabled(mWebpFile != null && isCommitContentSupported(info, MIME_TYPE_WEBP));
}
を、「m」の頭文字で上記のコード変数にはボタンです。 およびonStartInputView
のメソッドがオーバーライドされ、サポートAPIのチェックがサポートされていれば、ボタンは有効になります。
ボタンが無効になり、サポートされていない場合、ボタンの色が少し暗くなります。今、私はGridViewコントロールを使用しておりますので、私は以下のように行っている:
@Override
public void onStartInputView(EditorInfo info, boolean restarting) {
Log.e(">>>>>>Editor Info : >> ",""+info);
grid.setEnabled(imageFile1 != null && isCommitContentSupported(info, MIME_TYPE_PNG));
}
その完了、しかしGridViewのは、そのように、その色やUIを変更していないのでユーザーが...これがサポートされていないことを通知されますどのようにユーザーはこれが機能していないことに気付くでしょう。
返品タイプsetEnabled
は無効です。
これはどのように可能ですか?
すでに自分のコードで同じ方法を使用しています。 –
トーストはアクティビティなしでは表示できません。 InputMethodServiceクラス内にトーストを表示する方法はありますか? –
はい、次のようなトーストを表示しています:Toast.makeText(CLASSNAME.this、 "Hello World"、Toast.LENGTH_LONG) –