📌  相关文章
📜  在Android中使用EditText

📅  最后修改于: 2021-05-10 17:35:28             🧑  作者: Mango

EditText是基本的UI小部件之一,用于从用户那里获取输入。 EditText是Android中TextView的派生或扩展。本文已详细讨论了有关Android中的EditText。本文还包含对其他文章的一些重定向,也请参考它们以获取Android中EditText小部件的详细透视图。请查看以下列表以了解整体讨论的思路。

  1. EditText的输入类型
  2. 获取数据或检索用户输入的数据
  3. 输入数据定制
  4. 为占位符添加提示
  5. 更改笔触颜色
  6. 更改EditText内部的突出显示的颜色
  7. EditText的事件监听器
  8. EditText字段的错误消息
  9. 实施密码可见性切换
  10. 使用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允许开发人员对用户要输入的数据量进行限制。例如,可以限制输入的字符数,或者可以限制行数,或者可以限制位数。
  • 以下是一些属性:
  • 以下是numberPassword的示例,其中maxLength只有6位数字。

XML格式



  
    
  
    

输出:

4.添加占位符提示

  • EditText的提示使用户对他们必须输入到EditText中的数据有信心。
  • 请参阅以下代码及其输出,以更好地理解。

XML格式



  
    
  
    

输出:

5.更改笔触颜色

  • 焦点对准时出现的笔触颜色也可以通过以下属性进行更改
  • 请参阅以下代码及其输出,以更好地理解。

XML格式



  
    
  
    

输出:

6.更改EditText内突出显示的颜色

  • 当用户从中选择特定文本时,EditText中的文本将突出显示。
  • 可以使用以下属性更改EditText中突出显示的文本的颜色。
  • 请参阅以下代码及其输出,以更好地理解。

XML格式



  
    
  
    

输出:

7. EditText的事件监听器

  • EditText的事件侦听器也可以实现为执行特定操作。请参阅如何在Android中实现TextWatcher?

8. EditText字段的错误消息

  • 如果用户错过了任何EditText或在没有输入任何数据的情况下将EditText留为空白,则必须用错误消息向用户发出警报。
  • 要实现此类功能,请参阅Android中的“实现表单验证(EditText错误)”

9.实施密码可见性切换

  • 通过参考如何在Android中切换密码可见性来实现EditText的密码可见性切换。

10.使用Material Design EditText进行字符计数

  • 调用以下依赖关系来访问“材料设计”组件。
  • 以下属性将在TextInputLayout内部调用
  • 请参阅以下代码及其输出,以更好地理解。

XML格式



  
    
  
        
  
  
    
  

输出:

想要一个节奏更快,更具竞争性的环境来学习Android的基础知识吗?
单击此处,前往由我们的专家精心策划的指南,以使您立即做好行业准备!