web-dev-qa-db-ja.com

Androidアプリケーションで初期フォーカスを設定します

Androidアプリケーションでは、レイアウト内の最初のボタンに自動的にフォーカスを当て、オレンジ色のアウトラインを付けます。できればXMLで初期フォーカスを設定するにはどうすればよいですか?これを何にも設定できませんか?

83
stealthcopter

requestFocusタグを使用できます。

<Button ...>
  <requestFocus />
</Button>

あなたのボタンの1つをオートフォーカスするのは奇妙ですが、私はどのビューでもその動作を観察していません。

156
Matthias

@Someone Somewhere、私は上記のすべてを役に立たなかった。私が見つけた修正は http://www.helloandroid.com/tutorials/remove-autofocus-edittext-Android からです。基本的に、問題のあるボタンのすぐ上に非表示のレイアウトを作成する必要があります。

<LinearLayout Android:focusable="true"
              Android:focusableInTouchMode="true" 
              Android:layout_width="0px"
              Android:layout_height="0px" >
    <requestFocus />
</LinearLayout>
60
Vince Lasmarias

:focusable:focusableInTouchModeの両方をtrueに設定し、requestFocusを呼び出します。トリックを行います。

26
Ruivo

これが私に最適だと思いました。

AndroidManifest.xmlで<activity> elementを追加Android:windowSoftInputMode="stateHidden"

これにより、アクティビティに入るときにキーボードが常に非表示になります。

22
James

次のコード行をonCreate()に追加するだけです。

this.getWindow().setSoftInputMode(
    WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);

問題が解決しました。

11
Sam Tang

以下のコードを使用して、

TableRow _tableRow =(TableRow)findViewById(R.id.tableRowMainBody);
tableRow.requestFocus();

それは動作するはずです。

7
Bikesh

@Someoneどこかでこれを使ってフォーカスをクリアしました:

editText.clearFocus();

そしてそれは役立ちます

3
Ruobin Wang