AndroidアプリケーションにEditTextフィールドがある場合は常に、アクティビティが開始されるとすぐに、入力用のカーソルが点滅して強調表示されます(though the keyboard doesn't pop up
)。これを無効にするにはどうすればよいですか?
2 に答える
EditTextとListViewはタッチモードでフォーカス可能であるため、アイコンをタップしてアプリケーションを起動すると(タッチモードになります)、アプリケーションの最初のアイコンがフォーカスされる可能性があります。十字キーを使用してアプリケーションを入力した場合(タッチモードを終了)、最初のボタン、スピナー、EditText、またはListViewはすべてフォーカス可能であるため、フォーカスを取得します。
アプリケーションの起動時にフォーカスが合っているビューにあまり夢中にならないでしょうが、フォーカスを処理するデフォルトの方法に本当に耐えられない場合は、TextViewにフォーカスを与えてみてください。焦点が合っています。通常、タッチモードではフォーカスできないため、フォーカスをリクエストする前に有効にする必要があることに注意してください。これは少しハッキーなので、他の人(私も含めて)はこのルートをたどらないように警告し、通常の動作を受け入れるように勧める可能性があります。
View tv = findViewById(R.id.MyTextView);
tv.setFocusableInTouchMode(true);
tv.requestFocus();
PS:それはあなたのものとほとんど同じなので、あなたはこの他のSOの質問もチェックしたいかもしれません。
これを回避するには、setFocusable(false)を呼び出すことができます。ただし、後でフォーカスする必要がある場合は、後でsetFocusable(true)を再度呼び出す必要があります。