使用 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"
/>
这会将输入的数字限制为 0
和 1
。我们可能希望限制字符总数:
<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 在用户开始输入后隐藏提示消息(如上所述)。此外,任何验证错误消息都必须由开发人员手动管理。