为什么在活动打开时焦点未设置为第一个文本字段?

时间:2012-08-18 00:51:17

标签: android android-linearlayout

下面的xml显示了我的布局。如果在图形编辑器中查看此布局,则“Tempo”EditText为蓝色。这使得此字段成为活动打开时具有焦点的项目。我想让“名称”字段成为活动开始时具有焦点的第一个字段。有任何想法吗?感谢。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/content_panel"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="#fffafafa"
    android:orientation="vertical" >

    <ScrollView
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/scroll_view"
        android:layout_width="fill_parent"
        android:layout_height="0dip"
        android:layout_weight="1.0"
        android:fadingEdge="none" >

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical"
            android:paddingLeft="10.0dip"
            android:paddingRight="10.0dip"
            android:paddingTop="10.0dip"
            android:focusableInTouchMode="true" >

            <LinearLayout
                android:id="@+id/songname_layout"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical" >

                <TextView
                    style="?android:attr/textAppearanceSmall"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:text="@string/songname"
                    android:textColor="#ff000000"
                    android:textStyle="bold" />

                <EditText
                    android:id="@+id/edit_songname"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:imeOptions="actionNext"
                    android:inputType="textCapSentences"
                    android:textColor="#ff000000" >

                </EditText>
            </LinearLayout>

            <LinearLayout
                android:id="@+id/artist_layout"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical" >

                <TextView
                    style="?android:attr/textAppearanceSmall"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:text="@string/artist"
                    android:textColor="#ff000000"
                    android:textStyle="bold" />

                <AutoCompleteTextView
                    android:id="@+id/autocomplete_artist"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:imeOptions="actionNext"
                    android:inputType="textCapSentences"
                    android:textColor="#ff000000" />
            </LinearLayout>

            <LinearLayout
                android:id="@+id/genre_area"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical" >

                <TextView
                    style="?android:attr/textAppearanceSmall"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:text="@string/genre"
                    android:textColor="#ff000000"
                    android:textStyle="bold" />

                <AutoCompleteTextView
                    android:id="@+id/autocomplete_genre"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:imeOptions="actionNext"
                    android:inputType="textCapSentences"
                    android:textColor="#ff000000" />
            </LinearLayout>

            <LinearLayout
                android:id="@+id/notes_area"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical" >

                <TextView
                    style="?android:attr/textAppearanceSmall"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:text="@string/notes"
                    android:textColor="#ff000000"
                    android:textStyle="bold" />

                <EditText
                    android:id="@+id/notes"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:capitalize="sentences"
                    android:gravity="top"
                    android:imeOptions="actionNext"
                    android:inputType="textCapSentences"
                    android:minLines="3"
                    android:textColor="#ff000000" />
            </LinearLayout>

            <LinearLayout
                android:id="@+id/song_length_area"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical" >

                <TextView
                    style="?android:attr/textAppearanceSmall"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:text="@string/song_length"
                    android:textColor="#ff000000"
                    android:textStyle="bold" />

                <LinearLayout
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:orientation="horizontal" >

                    <EditText
                        android:id="@+id/edit_minute"
                        android:layout_width="60dp"
                        android:layout_height="wrap_content"
                        android:gravity="right"
                        android:imeOptions="actionNext"
                        android:inputType="number"
                        android:maxLength="3"
                        android:textColor="#ff000000" />

                    <TextView
                        style="?android:attr/textAppearanceSmall"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="@string/semicolon"
                        android:textColor="#ff000000"
                        android:textStyle="bold" />

                    <EditText
                        android:id="@+id/edit_second"
                        android:layout_width="40dp"
                        android:layout_height="wrap_content"
                        android:gravity="right"
                        android:imeOptions="actionNext"
                        android:inputType="number"
                        android:maxLength="2"
                        android:textColor="#ff000000" />

                    <TextView
                        style="?android:attr/textAppearanceSmall"
                        android:layout_width="wrap_content"
                        android:layout_height="wrap_content"
                        android:text="@string/minsec"
                        android:textColor="#ff000000"
                        android:textStyle="bold" />
                </LinearLayout>
            </LinearLayout>

            <LinearLayout
                android:id="@+id/tempo_area"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical" >

                <TextView
                    style="?android:attr/textAppearanceSmall"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:text="@string/tempo"
                    android:textColor="#ff000000"
                    android:textStyle="bold" />

                <EditText
                    android:id="@+id/edit_tempo"
                    android:layout_width="60dp"
                    android:layout_height="wrap_content"
                    android:gravity="right"
                    android:imeOptions="actionNext"
                    android:inputType="number"
                    android:maxLength="3"
                    android:textColor="#ff000000" >

                    <requestFocus />
                </EditText>
            </LinearLayout>

            <LinearLayout
                android:id="@+id/key_area"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical" >

                <TextView
                    style="?android:attr/textAppearanceSmall"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:text="@string/key"
                    android:textColor="#ff000000"
                    android:textStyle="bold" />

                <Spinner
                    android:id="@+id/edit_key"
                    android:layout_width="fill_parent"
                    android:layout_height="wrap_content"
                    android:imeOptions="actionNext"
                    android:textColor="#ff000000" />
            </LinearLayout>

            <LinearLayout
                android:id="@+id/depreciated_area"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:orientation="horizontal" >

                <CheckBox
                    android:id="@+id/depreciated"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:text="@string/depreciated"
                    android:textColor="#ff000000"
                    android:textStyle="bold" />
            </LinearLayout>
        </LinearLayout>
    </ScrollView>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:paddingBottom="1.0dip"
        android:paddingLeft="4.0dip"
        android:paddingRight="4.0dip"
        android:paddingTop="5.0dip" >

        <Button
            android:id="@+id/btnsave"
            android:layout_width="0.0dip"
            android:layout_height="fill_parent"
            android:layout_weight="1.0"
            android:text="@string/save" />

        <Button
            android:id="@+id/btncancel"
            android:layout_width="0.0dip"
            android:layout_height="fill_parent"
            android:layout_weight="1.0"
            android:text="@string/cancel" />
    </LinearLayout>

</LinearLayout>

2 个答案:

答案 0 :(得分:2)

使用requestFocus将焦点转移到特定的EditText

            <EditText
                android:id="@+id/edit_songname"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:imeOptions="actionNext"
                android:inputType="textCapSentences"
                android:textColor="#ff000000" >

                <requestFocus />

            </EditText>

正如您在布局中看到的那样,tempo字段中包含requestFocus字段。只需将其移至songname字段即可,一切顺利。

答案 1 :(得分:1)

在Java中

只需添加此

myedittext.requestFocus();