📜  如何在Android中将Mask添加到EditText

📅  最后修改于: 2021-05-10 16:57:46             🧑  作者: Mango

EditText是一个Android小部件。它是用于输入和修改数据的用户界面元素。它以字符串格式返回数据。

遮罩是指将某物替换为其他物的过程。因此,通过对EditText进行遮罩,空白将被替换为某些默认文本,即Mask。一旦用户输入任何字符作为输入,此掩码将被删除,并且当文本已从EditText中删除时,该掩码将重新出现。

在本文中,掩蔽是在JitPack库的帮助下完成的,因为可以根据实现电话号码,日期等各个字段的需要轻松地对其进行自定义。

方法:

  1. 在根build.gradle文件(而不是模块build.gradle文件)中添加支持库。这个库jitpack是一个新颖的软件包存储库。它是为JVM设计的,因此github和bigbucket中存在的任何库都可以直接在应用程序中使用。
    allprojects {
        repositories {
            maven {
                url "https://jitpack.io"
            }
        }
    }
    
  2. 在“依赖项”部分中添加以下依赖项。这是一个简单的Android edittext,带有自定义遮罩支持。掩码edittext直接导入,并根据用途进行定制。
    dependencies {
        implementation 'ru.egslava:MaskedEditText:1.0.5'
    }
    
  3. 现在,将以下代码添加到activity_main.xml文件中。它将在activity_main.xml中创建三个遮罩编辑文本和一个按钮。
    activity_main.xml
    
    
      
        
            app:mask="#### #### #### ####"
            android:layout_height="wrap_content"
            android:layout_margin="20dp"
            android:id="@+id/card"/>
      
        
            app:mask="+91 ### ### ####"/>
      
        
            app:mask="##:##:####"/>
      
        


    MainActivity.java
    package org.geeksforgeeks.gfgMaskEditText;
      
    import androidx.appcompat.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.Toast;
    import br.com.sapereaude
        .maskedEditText
        .MaskedEditText;
      
    public class MainActivity
        extends AppCompatActivity {
      
        MaskedEditText creditCardText,
            phoneNumText,
            dateText;
        Button show;
      
        @Override
        protected void onCreate(
            Bundle savedInstanceState)
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
      
            creditCardText = findViewById(R.id.card);
            phoneNumText = findViewById(R.id.phone);
            dateText = findViewById(R.id.Date);
            show = findViewById(R.id.showButton);
      
            show.setOnClickListener(
                new View.OnClickListener() {
      
                    @Override
                    public void onClick(View v)
                    {
      
                        // Display the information
                        // from the EditText
                        // with help of Taosts
                        Toast.makeText(
                                 MainActivity.this,
                                 "Credit Card Number "
                                     + creditCardText.getText()
                                     + "\n Phone Number "
                                     + phoneNumText.getText()
                                     + "\n Date "
                                     + dateText.getText(),
                                 Toast.LENGTH_LONG)
                            .show();
                    }
                });
        }
    }


  4. 现在,在MainActivity中添加以下代码。 Java文件。定义了所有三个遮罩编辑文本和一个按钮。在按钮上添加了onClickListener() ,该按钮创建了一个吐司,并显示了在蒙版edittexts中输入的所有数据。

    主要活动。Java

    package org.geeksforgeeks.gfgMaskEditText;
      
    import androidx.appcompat.app.AppCompatActivity;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.Toast;
    import br.com.sapereaude
        .maskedEditText
        .MaskedEditText;
      
    public class MainActivity
        extends AppCompatActivity {
      
        MaskedEditText creditCardText,
            phoneNumText,
            dateText;
        Button show;
      
        @Override
        protected void onCreate(
            Bundle savedInstanceState)
        {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
      
            creditCardText = findViewById(R.id.card);
            phoneNumText = findViewById(R.id.phone);
            dateText = findViewById(R.id.Date);
            show = findViewById(R.id.showButton);
      
            show.setOnClickListener(
                new View.OnClickListener() {
      
                    @Override
                    public void onClick(View v)
                    {
      
                        // Display the information
                        // from the EditText
                        // with help of Taosts
                        Toast.makeText(
                                 MainActivity.this,
                                 "Credit Card Number "
                                     + creditCardText.getText()
                                     + "\n Phone Number "
                                     + phoneNumText.getText()
                                     + "\n Date "
                                     + dateText.getText(),
                                 Toast.LENGTH_LONG)
                            .show();
                    }
                });
        }
    }
    

输出: