Освой программирование играючи

Сайт Александра Климова

Шкодим

/* Моя кошка замечательно разбирается в программировании. Стоит мне объяснить проблему ей - и все становится ясно. */
John Robbins, Debugging Applications, Microsoft Press, 2000

requestFocus

Элемент requestFocus (раздел Advanced) позволяет установить фокус на нужном компоненте. Предположим, что у вас имеется три текстовых поля, и нужно, чтобы фокус был на втором поле. В этом случае достаточно добавить тег requestFocus внутри нужного элемента:


<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/LinearLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <EditText
        android:id="@+id/editText1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10" />

    <EditText
        android:id="@+id/editText2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10" >

        <requestFocus />
    </EditText>

    <EditText
        android:id="@+id/editText3"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10" />

</LinearLayout>

Элемент requestFocus может быть только у одного элемента, поэтому остальные будут игнорироваться. Когда вы перетаскиваете какое-нибудь текстовое поле с панели инструментов на форму мышкой, то данный тег создаётся автоматически у первого поля. Затем вы можете вырезать его и вставить в нужное место. Перетащить сам элемент requestFocus с панели инструментов в нужное поле у меня не получилось. Элемент вставляется не внутрь нужного элемента, а после него, что неправильно. Проще ручками прописать.

Реклама