Android EditText详解及示例代码
1. EditText简介
EditText是Android中的一个可编辑TextView,可用于用户输入文本。而TextView是Android中的一个用于显示文本的控件,不可以进行输入操作。EditText相比TextView多了一些属性和事件,可以添加输入限制、输入提示等等,这些特性使得EditText更适合用于表单或输入数据的场景。
2. EditText的基本用法
EditText的基本用法非常简单,只需在布局文件中添加EditText控件,并设置相关属性即可。
示例代码:
<EditText
android:id="@+id/edit_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="请输入文本"
android:inputType="text"
android:maxLines="1" />
上述代码中,我们定义了一个id为edit_text的EditText控件,设置了宽度为match_parent,高度为wrap_content,输入类型为text,最大行数为1,并添加了一个输入提示“请输入文本”。
3. EditText常用属性
下面介绍EditText常用的属性。
3.1 输入类型(inputType)
Android的输入类型非常丰富,包括text、number、phone、datetime等等,可满足不同输入需求。我们可以通过设置inputType属性来指定输入类型。
示例代码:
<EditText
android:id="@+id/edit_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="请输入文本"
android:inputType="text" />
3.2 输入限制
在输入文本时,我们可以对输入内容进行限制,如只能输入数字、只能输入英文等等。
示例代码:
只能输入数字:
<EditText
android:id="@+id/edit_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="请输入数字"
android:inputType="number" />
只能输入英文:
<EditText
android:id="@+id/edit_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="请输入英文"
android:inputType="text"
android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" />
还可以限制输入的长度、输入内容是否可以改变等等。
3.3 输入提示(hint)
输入提示在用户未输入文本时,显示在EditText中,提醒用户应该输入什么样的内容。
示例代码:
<EditText
android:id="@+id/edit_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="请输入文本" />
3.4 文字对齐方式(textAlignment)
文字对齐方式决定了EditText中文本的水平和竖直方向的对齐方式。
示例代码:
<EditText
android:id="@+id/edit_text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="请输入文本"
android:textAlignment="center" />
4. EditText常用事件
EditText的常用事件有:文本变化事件、获得焦点事件和失去焦点事件。
4.1 文本变化事件
文本变化事件可以监听EditText中的字符变化。可以通过添加TextWatcher来监听EditText中的字符变化。
示例代码:
EditText editText = findViewById(R.id.edit_text);
editText.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
// 文本变化前的操作
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// 文本变化中的操作
}
@Override
public void afterTextChanged(Editable s) {
// 文本变化后的操作
}
});
4.2 获得焦点事件
获得焦点事件可以监听EditText获取到焦点的事件。可以通过设置OnFocusChangeListener来监听EditText的焦点变化。
示例代码:
EditText editText = findViewById(R.id.edit_text);
editText.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
// EditText获得焦点时的操作
} else {
// EditText失去焦点时的操作
}
}
});
5. 总结
EditText是Android中常用的一个可编辑TextView,可以用于用户输入文本。在使用EditText时,我们可以根据自己的需要设置EditText的属性和监听EditText的事件,从而实现更加丰富和灵活的功能。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Android EditText详解及示例代码 - Python技术站