Android でアクティビティが開始されたときに EditText がフォーカスを取得しないようにするにはどうすればよいですか? 質問する

Android でアクティビティが開始されたときに EditText がフォーカスを取得しないようにするにはどうすればよいですか? 質問する

Android には がありActivity、2 つの要素があります:

  1. EditText
  2. ListView

が起動するとActivityEditTextすぐに入力フォーカス(点滅するカーソル)が設定されます。起動時にコントロールに入力フォーカスを設定したくないので、次のことを試しました。

EditText.setSelected(false);
EditText.setFocusable(false);

EditText運が悪かった。の起動時に が自身を選択しないようにするにはどうすればよいでしょうかActivity?

ベストアンサー1

次の例のように、タグandroid:focusableInTouchMode="true"とをandroid:focusable="true"親レイアウト (またはLinearLayoutなどConstraintLayout) に追加すると、問題は解決します。

<!-- Dummy item to prevent AutoCompleteTextView from receiving focus -->
<LinearLayout
    android:focusable="true" 
    android:focusableInTouchMode="true"
    android:layout_width="0px" 
    android:layout_height="0px"/>

<!-- :nextFocusUp and :nextFocusLeft have been set to the id of this component
to prevent the dummy from receiving focus again -->
<AutoCompleteTextView android:id="@+id/autotext"
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"
    android:nextFocusUp="@id/autotext" 
    android:nextFocusLeft="@id/autotext"/>

おすすめ記事