В моем приложении для Android он автоматически фокусирует первую кнопку, которая у меня есть в моем макете, придавая ей оранжевый контур. Как настроить исходный фокус, желательно в XML, и может ли это быть ничтожным?Установите начальный фокус в приложении для Android.
ответ
Вы можете использовать requestFocus
тег:
<Button ...>
<requestFocus />
</Button>
я нахожу это странным, однако, что он автоматически фокусирует один из ваших кнопок, я не наблюдал, что поведение ни в одном из моих взглядов.
Установите и :focusable
, и :focusableInTouchMode
на номер true и позвоните по номеру requestFocus
. Это трюк.
, наконец, нашел, что это решение, спасибо – unruledboy
Да, это истинное решение для его исправления. Спасибо Anders – GkhnSr
Все еще не работает, когда есть EditText. – m0skit0
@Someone Где-то я это четкий фокус:
editText.clearFocus();
и это помогает
Не работает в Android 2.3.3. –
@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>
Мне удалось сосредоточиться на AlertDialog, и включение focusableintouchmode помогло мне исправить это. По существу, вот как: alert.show(); alert.getButton (AlertDialog.BUTTON_POSITIVE) .setFocusableInTouchMode (истина); alert.getButton (AlertDialog.BUTTON_NEGATIVE) .requestFocus(); –
Спасибо! Это было ** единственным ** решением, которое работало в моем случае. Хотя я использовал его несколько иначе; Я помещал фокус в «RelativeLayout», содержащий «EditText». – kaka
Используйте приведенный ниже код,
TableRow _tableRow =(TableRow)findViewById(R.id.tableRowMainBody);
tableRow.requestFocus();
, который должен работать.
Я просто добавить эту строку кода в onCreate()
:
this.getWindow().setSoftInputMode(
WindowManager.LayoutParams.SOFT_INPUT_STATE_ALWAYS_HIDDEN);
Проблема решена.
Работает в Android 2.3.3. –
Я нашел, что это сработало лучше для меня.
В AndroidManifest.xml <activity> element
добавить android:windowSoftInputMode="stateHidden"
Это всегда скрывает клавиатуру при вводе деятельности.
Удивительный .. Ты читаешь мой разум .. :) :) –
Да, это случилось с двумя моими приложениями. Думаю, я мог бы запроситьFocus на элемент, который не изменяется, как TextView, или это не будет разрешено? – stealthcopter
Я считаю, что он будет работать на любом видении, которое может быть сфокусировано. – Matthias
@stealthcopter: можете ли вы сказать, какую версию Android вы используете. Я использую 2.1 и 2.2, но requestFocus не работает. – anticafe