EditText是基本的UI小部件之一,用于从用户那里获取输入。 EditText是Android中TextView的派生或扩展。本文已详细讨论了有关Android中的EditText。本文还包含对其他文章的一些重定向,也请参考它们以获取Android中EditText小部件的详细透视图。请查看以下列表以了解整体讨论的思路。
- EditText的输入类型
- 获取数据或检索用户输入的数据
- 输入数据定制
- 为占位符添加提示
- 更改笔触颜色
- 更改EditText内部的突出显示的颜色
- EditText的事件监听器
- EditText字段的错误消息
- 实施密码可见性切换
- 使用Material Design EditText进行字符计数
Android中EditText的详细透视图
步骤1:创建一个空的活动项目
- 创建一个空的活动Android Studio项目。请参阅如何在Android Studio中创建/启动新项目,以了解如何创建空活动的Android项目。
步骤2:使用activity_main.xml文件
- 该应用程序的主布局包含EditText小部件和两个按钮。要实现UI,请在activity_main.xml文件中调用以下代码。了解一下android中基本EditText的外观。
XML
XML
XML
Kotlin
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import android.widget.EditText
import android.widget.Toast
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// register editText with instance
val editText: EditText = findViewById(R.id.editText)
// also register the submit button with the appropriate id
val submitButton: Button = findViewById(R.id.submitButton)
// handle the button with the onClickListener
submitButton.setOnClickListener {
// get the data with the "editText.text.toString()"
val enteredData: String = editText.text.toString()
// check whether the retrieved data is empty or not
// based on the emptiness provide the Toast Message
if (enteredData.isEmpty()) {
Toast.makeText(applicationContext, "Please Enter the Data", Toast.LENGTH_SHORT)
.show()
} else {
Toast.makeText(applicationContext, enteredData, Toast.LENGTH_SHORT).show()
}
}
}
}
Java
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
EditText editText;
Button submitButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// register editText with instance
editText = (EditText) findViewById(R.id.editText);
// also register the submit button with the appropriate id
submitButton = (Button) findViewById(R.id.submitButton);
// handle the button with the onClickListener
submitButton.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View view) {
// get the data with the
// "editText.text.toString()"
String enteredData = editText.getText().toString();
// check whether the retrieved data is
// empty or not based on the emptiness
// provide the Toast Message
if (enteredData.isEmpty()) {
Toast.makeText(getApplicationContext(), "Please Enter the Data", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(getApplicationContext(), enteredData, Toast.LENGTH_SHORT).show();
}
}
});
}
}
XML
XML
XML
XML
XML
输出界面:
现在让我们讨论EditText的各种属性
1. EditText的输入类型
- 这是需要在EditText小部件下指定的属性之一。它定义了用户要输入的数据类型。
- 以下是需要调用的属性,并引用其输出以获得清晰的理解。
InputType Attribute |
Type of the Data which is entered |
---|---|
number | Mathematical numeric value |
phone | Contact Number based on the country code |
date | To take the date input |
time | To take the time is neededinput |
textCapCharacters | To take the entire input in the upper case letters |
textMultiLine | Makes the user input multiple lines of text |
textEmailAddress | To take the email address from the user |
textPersonName | To take the name of the person as input |
textPassword | To take the text password from the user, which turns to asterisks dots after entering the data |
numberPassword | To take only the numerical digits as a password |
textVisiblePassword | To take the text password from the user, which do not turns to asterisks dots after entering the data |
textUri | To take the particular URL of the website |
- 出于演示目的,请参考以下代码,该代码仅包含电话作为输入类型。其中的值可以替换为上表中提到的值。
XML格式
输出:
2.获取数据或检索用户输入的数据
- 要获取用户输入的数据,首先必须使用id调用EditText小部件。用于指向android中唯一的窗口小部件。
- 通过参考以下代码,为EditText提供ID,该ID必须在activity_main.xml文件中调用。
XML格式
- 需要在MainActivity.kt文件中调用以下代码。它执行检索操作并提供与输入数据相同的Toast消息。
- 在一种情况下,如果用户将EditText留为空白,则必须检查是否为空白。检查是否为空白EditText。
科特林
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.widget.Button
import android.widget.EditText
import android.widget.Toast
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// register editText with instance
val editText: EditText = findViewById(R.id.editText)
// also register the submit button with the appropriate id
val submitButton: Button = findViewById(R.id.submitButton)
// handle the button with the onClickListener
submitButton.setOnClickListener {
// get the data with the "editText.text.toString()"
val enteredData: String = editText.text.toString()
// check whether the retrieved data is empty or not
// based on the emptiness provide the Toast Message
if (enteredData.isEmpty()) {
Toast.makeText(applicationContext, "Please Enter the Data", Toast.LENGTH_SHORT)
.show()
} else {
Toast.makeText(applicationContext, enteredData, Toast.LENGTH_SHORT).show()
}
}
}
}
Java
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import androidx.appcompat.app.AppCompatActivity;
public class MainActivity extends AppCompatActivity {
EditText editText;
Button submitButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// register editText with instance
editText = (EditText) findViewById(R.id.editText);
// also register the submit button with the appropriate id
submitButton = (Button) findViewById(R.id.submitButton);
// handle the button with the onClickListener
submitButton.setOnClickListener(
new View.OnClickListener() {
@Override
public void onClick(View view) {
// get the data with the
// "editText.text.toString()"
String enteredData = editText.getText().toString();
// check whether the retrieved data is
// empty or not based on the emptiness
// provide the Toast Message
if (enteredData.isEmpty()) {
Toast.makeText(getApplicationContext(), "Please Enter the Data", Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(getApplicationContext(), enteredData, Toast.LENGTH_SHORT).show();
}
}
});
}
}
输出:
3.输入数据定制
- EditText允许开发人员对用户要输入的数据量进行限制。例如,可以限制输入的字符数,或者可以限制行数,或者可以限制位数。
- 以下是一些属性:
- Input only perticular numbers -> The following attribute takes only the digits 5 & 6 as input and no other numbers can be entered by the user.
- digits=”56″
- inputType=”number”
- Restrict the number of characters of the input -> The following attribute makes user to enter only 6 number of characters.
- maxLength=”6″
- Restrict the number of lines of input -> The following attribute makes user restricted to only single line, in which the EditText do not expand if the amout of the data gets more than single line.
- lines=”1″
- maxLines=”1″
- 以下是numberPassword的示例,其中maxLength只有6位数字。
XML格式
输出:
4.添加占位符提示
- EditText的提示使用户对他们必须输入到EditText中的数据有信心。
The attribute which is used to provide the hint text for the EditText is:
android:hint=”First and Last Name”
- 请参阅以下代码及其输出,以更好地理解。
XML格式
输出:
5.更改笔触颜色
- 焦点对准时出现的笔触颜色也可以通过以下属性进行更改
android:backgroundTint=”colorValue”
- 请参阅以下代码及其输出,以更好地理解。
XML格式
输出:
6.更改EditText内突出显示的颜色
- 当用户从中选择特定文本时,EditText中的文本将突出显示。
- 可以使用以下属性更改EditText中突出显示的文本的颜色。
android:textColorHighlight=”colorValue”
- 请参阅以下代码及其输出,以更好地理解。
XML格式
输出:
7. EditText的事件监听器
- EditText的事件侦听器也可以实现为执行特定操作。请参阅如何在Android中实现TextWatcher?
8. EditText字段的错误消息
- 如果用户错过了任何EditText或在没有输入任何数据的情况下将EditText留为空白,则必须用错误消息向用户发出警报。
- 要实现此类功能,请参阅Android中的“实现表单验证(EditText错误)”
9.实施密码可见性切换
- 通过参考如何在Android中切换密码可见性来实现EditText的密码可见性切换。
10.使用Material Design EditText进行字符计数
- 调用以下依赖关系来访问“材料设计”组件。
implementation ‘com.google.android.material:material:1.2.1’
- 以下属性将在TextInputLayout内部调用
- app:counterEnabled=”true”
- app:counterMaxLength=”6″
- 请参阅以下代码及其输出,以更好地理解。
XML格式
输出:
想要一个节奏更快,更具竞争性的环境来学习Android的基础知识吗?
单击此处,前往由我们的专家精心策划的指南,以使您立即做好行业准备!