Android:具有固定大小的EditText下的虚线

时间:2017-07-24 07:18:24

标签: android android-layout android-edittext android-textinputedittext

如果我有一个EditText,允许用户只输入6位数字。如何在每个数字下创建一条线,每条线之间留有一个小空间。

Like this

其他问题是解决虚线作为布局中的分隔线的情况。

Question 1

Question 2

3 个答案:

答案 0 :(得分:3)

这是一个可以解决您问题的库。

https://android-arsenal.com/details/1/5999

答案 1 :(得分:3)

首先创建一个可绘制的文件(myline.xml)来创建该行。

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

<item
    android:bottom="1dp"
    android:left="-2dp"
    android:right="-2dp"
    android:top="-2dp">
    <shape android:shape="rectangle">
        <stroke
            android:width="1dp"
            android:color="@android:color/black"
            <!-- Change Gap & Width accroding to your need. -->
            android:dashGap="3.1dp"
            android:dashWidth="7dp" />
    </shape>
</item>

现在,在layout.xml中,在编辑文本背景中使用 myline.xml

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="5dp"
    android:orientation="horizontal">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Enter Digit: "
        android:textColor="#000"
        android:textSize="18dp" />

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/myline"
        android:lines="1"
        android:maxLength="6"
        android:text="123456"
        android:textColor="#000"
        android:textSize="18dp" />
</LinearLayout>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_margin="5dp"
    android:orientation="horizontal">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Enter Digit: "
        android:textColor="#000"
        android:textSize="18dp" />

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/myline"
        android:lines="1"
        android:maxLength="6"
        android:text="123"
        android:textColor="#000"
        android:textSize="18dp" />
</LinearLayout>

它的完成情况见下面截图中的输出。

enter image description here

答案 2 :(得分:1)

如果EditText的输入只是数字,请使用此。

String zeroLeading = String.format("%06d", number)

此返回零以6个lenth文本引导。 然后替换零

zeroLeading = zeroLeading.replaceAll("0","_");

在某些情况下_ _ 2 0 4 5是这样的。有点不同

String zeroLeading = String.format("%06d", number);
    int numberLen = (number+"").length();
    String underlineLeading = zeroLeading.substring(0, numberLen).replaceAll("0", "_")+zeroLeading.substring(numberLen, 6);