单击按钮移到下一个EditText

时间:2018-12-22 22:55:13

标签: android android-layout android-fragments android-edittext

这是用户需要提交的表格。它包含:标题,描述,价格,国家,省,电子邮件地址和一个保存按钮。 我将所有EditTexts和Save按钮设置为水平,并在底部放置一个Next按钮。 当用户输入标题时,按“下一步”按钮,将显示“描述输入文本”。输入一些描述,按下一步,然后出现价格,依此类推,直到保存按钮。 我将在屏幕上显示6张图像,这些图像将占据大部分视图,因此我希望“编辑文本”位于底部。

除了使用水平滚动条,我想不出更好的方法,但是我真的不想滚动。

EX: 标题可见,其余的EditText不可见。当用户输入标题并单击“下一步”按钮时,标题消失,并且出现描述EditText,依此类推,直到最后。 我只想一次显示在EditText上。

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
>


<LinearLayout
    android:id="@+id/imagesLayout"
    android:layout_width="match_parent"
    android:layout_height="400dp"
    android:orientation="horizontal">
    <ImageView
        android:id="@+id/iv_image1"
        android:layout_width="50dp"
        android:layout_height="50dp"/>
    <ImageView
        android:id="@+id/iv_image2"
        android:layout_width="50dp"
        android:layout_height="50dp"/>
    <ImageView
        android:id="@+id/iv_image3"
        android:layout_width="50dp"
        android:layout_height="50dp"/>
    <ImageView
        android:id="@+id/iv_image4"
        android:layout_width="50dp"
        android:layout_height="50dp"/>
    <ImageView
        android:id="@+id/iv_image5"
        android:layout_width="50dp"
        android:layout_height="50dp"/>
    <ImageView
        android:id="@+id/iv_image6"
        android:layout_width="50dp"
        android:layout_height="50dp"/>

    <TextView
        android:id="@+id/tv_multi_selection"
        android:layout_width="80dp"
        android:layout_height="20dp"
        android:background="@color/blue5"

        android:text="Images" />
</LinearLayout>

<HorizontalScrollView
    android:id="@+id/horizontal_scrollview"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_toLeftOf="@id/btn_right"
    android:fadeScrollbars="false"
    android:padding="5dp"
    android:scrollbarAlwaysDrawHorizontalTrack="true"
    android:scrollbars="horizontal"
    android:layout_below="@+id/imagesLayout">

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="80dp"
    android:layout_marginTop="10dp"
    android:orientation="horizontal">


    <EditText
        android:id="@+id/input_title"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="20dp"
        android:layout_marginRight="20dp"
        android:layout_marginTop="20dp"
        android:ems="10"
        android:hint="Title"
        android:inputType="textPersonName"
        android:padding="7dp"
        android:singleLine="true"

        android:textSize="14sp" />


    <EditText
        android:id="@+id/input_description"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginLeft="20dp"
        android:layout_marginTop="20dp"
        android:layout_marginRight="20dp"
        android:ems="10"
        android:hint="Description"
        android:inputType="textMultiLine"
        android:padding="7dp"
        android:singleLine="true"

        android:textSize="14sp" />


    <EditText
        android:id="@+id/input_price"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginLeft="20dp"
        android:layout_marginRight="20dp"
        android:layout_marginTop="20dp"
        android:ems="10"
        android:hint="Price"
        android:inputType="numberDecimal"
        android:padding="7dp"
        android:textSize="14sp" />

    <EditText
        android:id="@+id/input_country"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginLeft="20dp"
        android:layout_marginRight="20dp"
        android:layout_marginTop="20dp"
        android:ems="10"
        android:hint="Country"
        android:inputType="textCapWords"
        android:padding="7dp"
        android:textSize="14sp" />

    <EditText
        android:id="@+id/input_state_province"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginLeft="20dp"
        android:layout_marginRight="20dp"
        android:layout_marginTop="20dp"
        android:ems="10"
        android:hint="State/Province/Region"
        android:inputType="textCapWords"
        android:padding="7dp"
        android:textSize="14sp" />

    <EditText
        android:id="@+id/input_city"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginLeft="20dp"
        android:layout_marginRight="20dp"
        android:layout_marginTop="20dp"
        android:ems="10"
        android:hint="City"
        android:inputType="textCapWords"
        android:padding="7dp"
        android:textSize="14sp" />
    <EditText
        android:id="@+id/input_email"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginLeft="20dp"
        android:layout_marginRight="20dp"
        android:layout_marginTop="20dp"
        android:ems="10"
        android:hint="Your Contact Email"
        android:inputType="textEmailAddress"
        android:padding="7dp"
        android:textSize="14sp" />

    <Button
        android:id="@+id/btn_post"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginBottom="20dp"
        android:layout_marginLeft="10dp"
        android:layout_marginRight="10dp"
        android:layout_marginTop="50dp"
        android:background="@color/colorPrimary"
        android:text="Post"
        android:textColor="@android:color/white" />

    <ProgressBar
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:id="@+id/progressBar"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="120dp"
        android:visibility="invisible"/>

</LinearLayout>

</HorizontalScrollView>

<Button
    android:id="@+id/btn_right"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_centerHorizontal="true"
    android:layout_marginLeft="10dp"
    android:layout_marginTop="0dp"
    android:layout_marginRight="10dp"
    android:layout_marginBottom="20dp"
    android:background="@color/colorPrimary"
    android:text="Next"
    android:textColor="@android:color/white"
    android:layout_alignParentBottom="true"
    />


  </LinearLayout>

2 个答案:

答案 0 :(得分:1)

    <?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">


    <LinearLayout
        android:id="@+id/imagesLayout"
        android:layout_width="match_parent"
        android:layout_height="400dp"
        android:orientation="horizontal">
        <ImageView
            android:id="@+id/iv_image1"
            android:layout_width="50dp"
            android:layout_height="50dp"/>
        <ImageView
            android:id="@+id/iv_image2"
            android:layout_width="50dp"
            android:layout_height="50dp"/>
        <ImageView
            android:id="@+id/iv_image3"
            android:layout_width="50dp"
            android:layout_height="50dp"/>
        <ImageView
            android:id="@+id/iv_image4"
            android:layout_width="50dp"
            android:layout_height="50dp"/>
        <ImageView
            android:id="@+id/iv_image5"
            android:layout_width="50dp"
            android:layout_height="50dp"/>
        <ImageView
            android:id="@+id/iv_image6"
            android:layout_width="50dp"
            android:layout_height="50dp"/>

        <TextView
            android:id="@+id/tv_multi_selection"
            android:layout_width="80dp"
            android:layout_height="20dp"
            android:background="@color/blue5"
            android:text="Images" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="8dp"
        android:orientation="horizontal">


        <EditText
            android:id="@+id/input_title"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_margin="20dp"
            android:ems="10"
            android:hint="Title"
            android:inputType="textPersonName"
            android:padding="7dp"
            android:singleLine="true"
            android:textSize="14sp" />


        <EditText
            android:id="@+id/input_description"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_margin="20dp"
            android:ems="10"
            android:hint="Description"
            android:inputType="textMultiLine"
            android:padding="7dp"
            android:singleLine="true"
            android:visibility="gone"
            android:textSize="14sp" />


        <EditText
            android:id="@+id/input_price"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_margin="20dp"
            android:ems="10"
            android:hint="Price"
            android:inputType="numberDecimal"
            android:padding="7dp"
            android:visibility="gone"
            android:textSize="14sp" />

        <EditText
            android:id="@+id/input_country"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_margin="20dp"
            android:ems="10"
            android:visibility="gone"
            android:hint="Country"
            android:inputType="textCapWords"
            android:padding="7dp"
            android:textSize="14sp" />


        <EditText
            android:id="@+id/input_state_province"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_margin="20dp"
            android:ems="10"
            android:visibility="gone"
            android:hint="State/Province/Region"
            android:inputType="textCapWords"
            android:padding="7dp"
            android:textSize="14sp" />


        <EditText
            android:id="@+id/input_city"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_margin="20dp"
            android:ems="10"
            android:hint="City"
            android:inputType="textCapWords"
            android:padding="7dp"
            android:textSize="14sp"
            android:visibility="gone"/>
        <EditText
            android:id="@+id/input_email"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_margin="20dp"
            android:ems="10"
            android:hint="Your Contact Email"
            android:inputType="textEmailAddress"
            android:padding="7dp"
            android:textSize="14sp"
            android:visibility="gone"/>

        <Button
            android:id="@+id/btn_post"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginBottom="20dp"
            android:layout_marginLeft="10dp"
            android:layout_marginRight="10dp"
            android:layout_marginTop="50dp"
            android:background="@color/colorPrimary"
            android:text="Post"
            android:visibility="gone"
            android:textColor="@android:color/white" />

        <ProgressBar
            android:layout_width="50dp"
            android:layout_height="50dp"
            android:id="@+id/progressBar"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="120dp"
            android:visibility="gone"/>

    </LinearLayout>

    <Button
        android:id="@+id/btn_right"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginLeft="10dp"
        android:layout_marginTop="8dp"
        android:layout_marginRight="10dp"
        android:layout_marginBottom="20dp"
        android:background="@color/colorPrimary"
        android:text="Next"
        android:textColor="@android:color/white"
        android:layout_alignParentBottom="true"
        />


</LinearLayout>

尝试此操作,因为没有用,所以我删除了水平滚动条。尝试添加滚动视图以获得更好的用户体验。在.java中,您可以检查edittext是否为空(如果不为空),将Edittext视图设置为edittext.setVisibilty(View.GONE);,然后将下一个edittext设置为可见。示例edittext2.setVisibilty(View.VISIBLE);

答案 1 :(得分:0)

为“下一个按钮”设置一个侦听器。编辑示例代码,以便包含您的按钮ID。然后为您的文本视图创建变量。还通过ID查找它们。然后使用变量检查文本视图的可见性。如果可见,则将其隐藏并显示下一个视图。

 final Button button = findViewById(R.id.button_id);
    button.setOnClickListener(new View.OnClickListener() {
             if (tv1.getVisibility() == View.VISIBLE) {
                 tv1.setVisibility(View.GONE);
                 tv2.setVisibility(View.VISIBLE);
                 return;
             }
             if (tv2.getVisibility() == View.VISIBLE) {
                 tv2.setVisibility(View.GONE);
                 tv3.setVisibility(View.VISIBLE);
                 return;
             }
             //continue as in the example for all your text views.

            }
          });