在android中切换两个或多个编辑文本

时间:2013-04-04 10:30:49

标签: android android-layout android-widget android-edittext

假设我的布局中有两个或更多EditText视图,并且在运行时错误地选择了第二个视图并用文本填充它;现在我想转到之前的EditText视图,并且在触摸时获得它的重点是在其中写入一些文本。

但我无法做到这一点。我无法获得视图的焦点,并在点击该特定视图时将其写入。

请参阅以下代码:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" 
    android:background="@drawable/wall">

<EditText
    android:id="@+id/title"
    android:layout_width="fill_parent"
    android:layout_height="40dp"
    android:textSize="30dp"
    android:focusable="true"
    android:hint="@string/Title" />

<EditText
    android:id="@+id/body"
    android:layout_width="fill_parent"
    android:layout_height="350dp"
    android:textSize="25dp"
    android:paddingTop="45dp"
    android:gravity="top"
    android:inputType="textMultiLine|textNoSuggestions"
    android:ems="10"
    android:focusable="true"
    android:hint="@string/program" />

<TextView
    android:id="@+id/CalDisplay"
    android:layout_width="match_parent"
    android:layout_height="50dp"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
   android:textSize="20dp"
    android:layout_below="@+id/save" />

<Button
    android:id="@+id/Calculate"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:layout_below="@+id/body"
    android:layout_toRightOf="@+id/RunProgram"
    android:background="@drawable/custom_button"
    android:textColor="#ffffff"
    android:text="@string/Calculate" />

<Button
    android:id="@+id/save"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignBaseline="@+id/Calculate"
    android:layout_alignBottom="@+id/Calculate"
    android:layout_alignParentLeft="true"
    android:layout_toLeftOf="@+id/RunProgram"
    android:background="@drawable/custom_button"
    android:textColor="#ffffff"
    android:text="@string/Save"
     />

<Button
    android:id="@+id/RunProgram"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_below="@+id/body"
    android:layout_centerHorizontal="true"
    android:background="@drawable/custom_button"
    android:textColor="#ffffff"
    android:text="@string/Run" />

</RelativeLayout>   

2 个答案:

答案 0 :(得分:0)

RelativeLayout替换为LinearLayout。因为看起来你的EditText彼此重叠(导致焦点问题),或者至少添加一些相应的对齐方式。

例如,将以下内容添加到第二个EditText

android:layout_below="@id/title"

答案 1 :(得分:0)

Try this...

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <EditText
        android:id="@+id/title"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="5dp"
        android:hint="Title"
        android:textSize="15dp" />

    <EditText
        android:id="@+id/body"
        android:layout_width="fill_parent"
        android:layout_height="350dp"
        android:layout_below="@+id/title"
        android:layout_marginTop="5dp"
        android:gravity="left"
        android:hint="program"
        android:inputType="textMultiLine|textNoSuggestions"
        android:textSize="15dp" />

    <TextView
        android:id="@+id/CalDisplay"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/save"
        android:textSize="20dp" />

    <LinearLayout
        android:id="@+id/linearButtons"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/body" >

        <Button
            android:id="@+id/Calculate"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Calculate"
            android:textColor="#ffffff" />

        <Button
            android:id="@+id/save"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Save"
            android:textColor="#ffffff" />

        <Button
            android:id="@+id/RunProgram"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_weight="1"
            android:text="Run"
            android:textColor="#ffffff" />
    </LinearLayout>

    </RelativeLayout>