43

上部に検索ボックス ( EditText) があり、下部に ListView があるアクティビティがあります。アクティビティが開始されるたびに、EditText に常にフォーカスがあり、キーボードが表示され、ListView.

フォーカスできるテキスト ビューは他にありません。ユーザーがそれに触れて入力を開始したときにのみ、EditText にフォーカスを当てたいと思います。、またはを入れようとしましclearFocus()たが、うまくいきません。onCreateViewonViewCreatedonCreated

4

8 に答える 8

115

親レイアウトで次の属性を設定します。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/mainLayout"
    android:descendantFocusability="beforeDescendants"
    android:focusableInTouchMode="true" >

そして今、activityこのレイアウトを開始すると、デフォルトのフォーカスが取得されます。

また、実行時に子ビューからフォーカスを削除することもできます(たとえば、子の編集を終了した後)。

findViewById(R.id.mainLayout).requestFocus();

また

AndroidManifest.xml要素を調べます。

android:windowSoftInputMode="stateHidden"

アクティビティに入るときは常にキーボードを非表示にします。

于 2013-01-20T12:47:51.887 に答える
4

XMLで<requestFocus>タグについて言及している必要があります。それを削除して再実行してくださいeditTiext field

于 2013-01-20T12:46:58.053 に答える
2

次のように、EditText の親レイアウトに android:focusable="true" 要素と android:focusableInTouchMode="true" 要素を追加します。

android:id="@+id/linearLayout7" android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:focusable="true" android:focusableInTouchMode="true">

私はそれがあなたを助けるはずだと思います。

于 2016-01-01T11:19:27.220 に答える
0

これが答えEditTextであり、外側のタッチに明確に焦点を当てています

または、textViewでテキストのみを表示し、このテキストを編集できるonClickダイアログを表示するウィジェットを作成することもできます/EditText

于 2013-01-20T12:48:37.663 に答える
-1

これを試して

Activity宣言にAndroidManifest.xml次のコードを追加します。

android:windowSoftInputMode="stateHidden"

アクティビティが表示されたときにキーボードがポップアップするのを防ぎます。

ハッピーコーディング:)

于 2013-01-20T12:46:28.053 に答える