使用 EditTexts

EditText 是 Android 应用程序中的标准文本输入窗口小部件。如果用户需要在应用程序中输入文本,这是他们执行此操作的主要方式。

EditText

可以设置许多重要属性来自定义 EditText 的行为。下面列出了其中一些。查看官方文本字段指南,了解更多输入字段详细信息。

用法

EditText 将添加到布局中,其中包含具有以下 XML 的所有默认行为:

<EditText
    android:id="@+id/et_simple"
    android:layout_height="wrap_content"
    android:layout_width="match_parent">
</EditText>

请注意,EditText 只是 TextView 的精简扩展,并且继承了所有相同的属性。

检索价值

获取输入 EditText 的文本的值如下:

EditText simpleEditText = (EditText) findViewById(R.id.et_simple);
String strValue = simpleEditText.getText().toString();

进一步的入门定制

我们可能希望将条目限制为单行文本(避免换行):

<EditText
  android:singleLine="true"
  android:lines="1"
/>

你可以使用 digits 属性限制可以输入到字段中的字符:

<EditText
  android:inputType="number"
  android:digits="01"
/>

这会将输入的数字限制为 01。我们可能希望限制字符总数:

<EditText
  android:maxLength="5"
/>

使用这些属性,我们可以定义文本字段的预期输入行为

调整颜色

你可以使用 android:textColorHighlight 属性调整 EditText 中所选文本的高亮背景颜色:

<EditText
    android:textColorHighlight="#7cff88"
/>

显示占位符提示

你可能希望为 EditText 控件设置提示,以提示用户输入特定输入:

<EditText
    ...
    android:hint="@string/my_hint">
</EditText>

提示

改变底线颜色

假设你正在使用 AppCompat 库,则可以覆盖样式 colorControlNormal,colorControlActivated 和 colorControlHighlight:

<style name="Theme.App.Base" parent="Theme.AppCompat.Light.DarkActionBar">
    <item name="colorControlNormal">#d32f2f</item>
    <item name="colorControlActivated">#ff5722</item>
    <item name="colorControlHighlight">#f44336</item>
</style>

如果你没有在 DialogFragment 中看到这些样式,则使用传入 onCreateView() 方法的 LayoutInflater 时会出现一个已知错误。

该问题已在 AppCompat v23 库中修复。请参阅本指南,了解如何升级。另一个临时解决方法是使用 Activity 的布局 inflater 而不是传递给 onCreateView() 方法的布局:

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = getActivity().getLayoutInflater().inflate(R.layout.dialog_fragment, container);
  }

收听 EditText 输入

查看基本事件监听器悬崖,了解如何监听 EditText 的更改并在发生这些更改时执行操作。

显示浮动标签反馈

传统上,EditText 在用户开始输入后隐藏提示消息(如上所述)。此外,任何验证错误消息都必须由开发人员手动管理。

使用 TextInputLayout,你可以设置浮动标签以显示提示和错误消息。你可以在这里找到更多细节