Установите начальный фокус в приложении для Android

В моем приложении для Android он автоматически фокусирует первую кнопку, которая у меня есть в моем макете, придавая ей оранжевый контур. Как настроить исходный фокус, желательно в XML, и может ли это быть ничто?

Ответ 1

Вы можете использовать тег requestFocus:

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

Мне кажется странным, что он автоматически фокусирует одну из ваших кнопок, я не наблюдал этого поведения ни в одном из моих представлений.

Ответ 2

@Someone Где-то я пробовал все вышеперечисленное безрезультатно. Исправление, которое я нашел, это 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>

Ответ 3

Установите для обоих :focusable и :focusableInTouchMode значение true и вызовите requestFocus. Это делает трюк.

Ответ 4

Я нашел, что это сработало лучше всего для меня.

В AndroidManifest.xml <activity> element добавить android:windowSoftInputMode="stateHidden"

Это всегда скрывает клавиатуру при вводе активности.

Ответ 5

Я просто добавляю эту строку кода в onCreate():

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

Проблема решена.

Ответ 6

Используйте приведенный ниже код,

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

который должен работать.

Ответ 7

@Someone Где-то я использовал это, чтобы очистить фокус:

editText.clearFocus();

и это помогает