3

我正在开发一个 Android 应用程序,现在我正在创建一个密码屏幕,它将有四个 editText 来保存四位数字。

这是我的password.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/RelativeLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <EditText
        android:id="@+id/firstNum"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="14dp"
        android:layout_marginTop="191dp"
        android:ems="10"
        android:inputType="textPassword"
        android:lines="1"
        android:maxLength="1"
        android:maxLines="1"
        android:minLines="1" >

        <requestFocus />
    </EditText>

</RelativeLayout>

这就是我得到的:

在此处输入图像描述

但是editText太大了。

如何更改其宽度以使其仅适合一个字符?

4

3 回答 3

18

将其更改为android:ems="1"

<EditText
    android:id="@+id/firstNum"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:layout_alignParentTop="true"
    android:layout_marginLeft="14dp"
    android:layout_marginTop="191dp"
    android:ems="1"
    android:inputType="textPassword"
    android:lines="1"
    android:maxLength="1"
    android:maxLines="1"
    android:minLines="1" >

http://developer.android.com/reference/android/R.attr.html#ems

“em”是排版中的一个术语 - 基本上您可以将其视为指定字体大小下 1 个字符的宽度。这是首选,因为即使您更改字体大小,它也始终是一个字符宽。

http://en.wikipedia.org/wiki/Em_(排版)

于 2013-06-04T07:58:46.613 回答
0

设置 android:maxEms="1" 或删除 wrap_content 并设置宽度

android:layout_width="40dp"
android:layout_height="40dp"
于 2013-06-04T08:17:09.923 回答
-2

如果你想设置你的edittext的物理宽度,你可以使用

android:maxWidth="your size in dp"

但如果你想在其中接收单个字符,你可以使用

android:maxLength="1"
于 2013-06-04T08:43:59.510 回答