問題タブ [android-input-method]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - InputConnectionからEditText内のすべてのテキストを取得するためのより良い方法はありますか?
IME(InputMethodService)を作成しましたが、編集中のEditTextからすべてのテキストを取得する必要があります。私は1つの方法を知っています:
それは動作しますが、それはかなり愚かで不格好なようです。ただし、そのような方法はありませんInputConnection.getText()
。
もっと良い方法はありますか?
PSエディットテキストは親アプリに属しているため、IMEからアクセスできません。エディットテキストを取得する方法がわからない限り、EditText.getText()を使用するように言わないでください。
android - 物理キーボードとソフト キーボードを同時にアクティブにすることはできますか?
私のアプリケーションでは、2 つの入力ソースを同時にアクティブにする必要があります。バーコード スキャナーとソフト キーボードです。ブルートゥース スキャナーをペアリングすると、物理キーボードとして扱われます。したがって、このデバイスが接続されている場合、ソフト キーボードは表示されません (ソフト キーボードは非アクティブ化されます)。
物理キーボードとソフト キーボードを同時にアクティブにすることはできますか? そうでない場合、問題を解決するための最善のアプローチは何ですか? キー プレス イベントをシンクするカスタム ビューを実装する必要がありますか? これを行うキーボードアプリは市場にありますか?
プログラムで物理キーボードをオンまたはオフにするにはどうすればよいですか? これはトグル ボタンの [Use Physical Keyboard] 設定です (この設定のスクリーンショットは次の場所にあります。
android - Android: TextWatcher を使用して EditText の文字を削除しても、候補に文字が表示される
私のアクティビティでは、ファイル名をキャプチャするための EditText があります。私は TextWatcher を使用して、ユーザーがファイル名に使用したくない特定の文字を入力できないようにしています。基本的に、ユーザーに次の文字のみを入力してもらいたい: [a-zA-Z_0-9]。
編集: onCreate(...) にさらにコードを追加する
レイアウト xml ファイル内
これは、ユーザーが「\」や「.」などを入力できないようにすることで、完全に機能します。私が抱えている問題は、これらの文字を入力すると、単語候補ボックスに表示されることです。バックスペースを使用して文字を削除しようとすると、最初に提案から削除されるため、面倒です (文字が EditText ボックスに表示されない場合でも)。
不要な文字が単語候補ボックスに表示されないようにするにはどうすればよいですか?
以下のスクリーンショットを参照してください。「-」(ハイフン) が提案ボックスに表示されますが、EditText には表示されないことに注意してください。また、提案ボックスのハイフンの後に別の有効な文字があることにも注意してください。これも EditText には表示されません。これにより、ハイフンが EditText に含まれていなくても、ユーザーがハイフンを削除するまで、それ以上のテキストを入力できなくなります。
更新: 同じ問題が発生し、TextWatcher の代わりに InputFilter を使用して再現できます。
更新:私の目標は提案を完全に抑制することではないことを明確にしたいと思います。問題は、特定の文字が EditText に表示されないようにしても、それらの文字が提案に表示されることです。私の目標 (報奨金の目的) は、同じ特定の文字が提案に表示されないようにすることです。
android - AndroidのカスタムキーボードIMEにボタンを追加する
AndroidIMEにカスタムボタンを追加したいと思います。そこで、コードサンプルのソフトキーボードサンプルを使用して、InputMethodService拡張機能を作成しました。ただし、SoftKeyboardサンプルでは、候補ビューを使用して予測テキストを追加しています。そのため、同じアプローチを使用しようとしましたが、候補ビューにボタンを追加するときにonclickイベントをリッスンするにはどうすればよいですか。これは、キーボードの上にボタンを追加するための最良の方法ですか?
すでに提供されているキーボードの各文字の背景を変更したり、ボタンを変更したりするにはどうすればよいですか?
ありがとう、nil
android - InputKeyboard起動時のEditTextAndroidでのIMEの作成
デバイス用に独自のIMEを作成しています。追加する必要があるのは、下の画像に示すように、keyboardViewの上にあるTextBoxです。下の画像のように表示することはできますが、テキストを書き込むことができません。
キーボードビューを拡張しています。以下はレイアウト構造です
パブリッククラスCustomKeyboardViewはKeyboardViewを拡張します{
ありがとう、ニル
android - 誰かがTYPE_INPUT_METHOD_DIALOGの使い方を説明できますか?
EditText
ソフトキーボードのキーを押したときに、単純なダイアログ ボックス (およびボタンなど) を作成したいと考えています。
android - Androidの画面上のキーボードビューへのポインタを取得します
天文学アプリですべてのUI要素を赤みを帯びるように取り組んでいます。オンスクリーンキーボードを除く基本的にすべてについて、これを正常に実行しました。これを行うには、キーボードのウィンドウまたはビューへの参照を取得する必要があります。そのためのAPIには何も見つかりませんでした。
誰かが私がこれを手に入れる方法を提案できますか?キーボードが表示または非表示になっているときに学習する方法(のハック)を説明する投稿を見たことがありますが、実際にはビューへの参照を取得していません。
ありがとうビル
android - サービスを開始しようとすると許可が拒否されました
InputMethodService
からにアクセスしようとしてActivity
いますが、権限に関する問題が発生しています。これは、カスタム キーボード アプリ用です。
私が達成しようとしているのは、Activity
後ろで作成されたテキストを にバインドすることInputMethodService
です。はActivity
から開かれInputMethodService
、次に からActivity
を起動しようとします (これが問題である可能性があります。からService
を開く方法は次のとおりです。Activity
InputMethodService
から と通信しようとする場所は次InputMethodService
のActivity
とおりです。
ここに私のマニフェストファイルがあります:
ここに私のスタックトレースがあります:
何か案は?
android - InputMethod は EditText を非表示にします
上の画像のように、videoview Resume、Produits、Persos、Talk の下に 4 つのタブがあります。
タブをクリックすると、新しい対応するアクティビティがタブの下に起動されます。画像に示すように、現在のタブはトークです。私の質問は、ユーザーが Edittext をクリックすると、ソフト入力キーボードが表示されますが、画像の横にある edittext が非表示になります。それを回避する方法です。
java - SeekBarを使用してAndroidレイアウトの計算値を更新する
そのため、私はさまざまな入力と出力を備えたPlanモデルを備えたアプリに取り組んでいます。アプリのレイアウトには、入力用のスライダーコントロールと、出力用のラベルがあります。入力が変更されると、モデルが更新され、モデルが計算を実行してから、ビューを更新します。最初はこのアーキテクチャに問題があるとは思いませんでしたが、単純な計算でも実行速度が非常に遅く、UIスレッドがブロックされているようです。確かに、私は物事を更新するためのやや複雑な方法を持っています:
- Slider(ビューグループサブクラス内)はその値を更新し、デリゲート(そのビューグループサブクラスに固有のインターフェイスを実装する)にメッセージを送信します。
- Delegate(モデルとコントロールサブビューを保持する)は、Planインスタンスに新しい値を設定するように指示します。これにより、Planはその出力を再計算します。
- プランが計算を完了すると、デリゲートに別のメッセージを送信します。デリゲートは、出力ビューに新しい値で更新するように指示します。
私が開発したiOSアプリからこのアーキテクチャをモデル化しましたが、計算の実行にそれほど大きな問題はないようです。
さて、AndroidはiOSとは大きく異なることを知っているので、これについて完全に間違っているのではないかと思います。これらのビューに、プランモデルの変更を監視してから、表示されるはずの値を取得するように指示する方法はありますか?
ここで私が見ているもう1つの大きな問題は、スライダー入力に関するものです。モデル更新の計算をスレッドに入れると、スライダーが変更されるたびに、新しいスレッドが作成されます。これらのスレッド(私が見てきたように)は、多かれ少なかれランダムな順序で終了し、増分変更が表示される必要があるときにほとんど意味がないような方法でビューを更新します。シークバーで変更可能であると思われる計算をスレッド化する良い方法はありますか?