0

+とボタンのある数量フィールドのようなものがあり-ます。

ユーザーがこれらのボタンをクリックすると、 内の整数が増減しますEditText。ユーザーはキーボードを使用してフィールドを手動で編集することもできるため、EditTexta ではなくan を使用します。TextView

ユーザーが長押しすると、すぐに更新されるスレッドが開始EditTextされ、ユーザーがボタンを離すとスレッドが停止します。更新は順調に進んでいますが、EditTextリスナーが原因でアプリの動作が遅くなります。

私はそのようなログをたくさん手に入れました:

05-22 12:56:21.625: W/IInputConnectionWrapper(15137): getTextAfterCursor on inactive InputConnection
05-22 12:56:21.635: W/IInputConnectionWrapper(15137): getTextBeforeCursor on inactive InputConnection
05-22 12:56:21.635: W/IInputConnectionWrapper(15137): getTextAfterCursor on inactive InputConnection
05-22 12:56:21.635: W/IInputConnectionWrapper(15137): getTextBeforeCursor on inactive InputConnection

KeyListenerスレッドを開始する前に null に設定することで、フリーズを回避できました

editText.setKeyListener(null)

しかし、ソフトキーボードの入力タイプが変更されるため、このソリューションにはあまり満足していません。ユーザーがボタンをクリックするたびに、ソフト キーボードが数値入力タイプから標準入力タイプに変わります。

をスパムするときにフリーズを回避する別の方法はありEditTextますか?

4

1 に答える 1