Computer >> Máy Tính >  >> Lập trình >> Android

Cách chuyển đổi giữa ẩn và xem mật khẩu trong Android

Có rất nhiều trường hợp yêu cầu hiển thị mật khẩu khi nhập mật khẩu hoặc sau khi nhập mật khẩu. Ví dụ này minh họa về Cách chuyển đổi giữa ẩn và xem mật khẩu.

Bước 1 - Tạo một dự án mới trong Android Studio, đi tới Tệp ⇒ Dự án Mới và điền tất cả các chi tiết cần thiết để tạo một dự án mới.

Bước 2 - Thêm mã sau vào res / layout / activity_main.xml.

<?xml version = "1.0" encoding = "utf-8"?>
<LinearLayout xmlns:android = "https://schemas.android.com/apk/res/android"
   xmlns:tools = "https://schemas.android.com/tools"
   android:layout_width = "match_parent"
   android:layout_height = "match_parent"
   tools:context = ".MainActivity"
   android:background = "#dde4dd"
   android:orientation = "vertical">
   <android.support.design.widget.TextInputLayout
      android:layout_width = "match_parent"
      android:layout_height = "wrap_content"
      android:id = "@+id/layoutEmail"
      android:layout_marginTop = "8dp"
      android:layout_marginStart = "8dp"
      android:layout_marginEnd = "8dp"
      style = "@style/Widget.MaterialComponents.TextInputLayout.FilledBox">
      <android.support.design.widget.TextInputEditText
         android:layout_width = "match_parent"
         android:layout_height = "wrap_content"
         android:id = "@+id/email"
         android:hint = "Enter Email id"
         android:inputType = "textEmailAddress"/>
   </android.support.design.widget.TextInputLayout>
   <android.support.design.widget.TextInputLayout
      android:layout_width = "match_parent"
      android:layout_height = "wrap_content"
      android:id = "@+id/layoutPassword"
      android:layout_marginTop = "8dp"
      android:layout_marginStart = "8dp"
      android:layout_marginEnd = "8dp"
      style = "@style/Widget.MaterialComponents.TextInputLayout.FilledBox">
      <android.support.design.widget.TextInputEditText
         android:layout_width = "match_parent"
         android:layout_height = "wrap_content"
         android:id = "@+id/password"
         android:hint = "Password"
         android:inputType = "textPassword"/>
   </android.support.design.widget.TextInputLayout>
   <LinearLayout
      android:layout_width = "match_parent"
      android:gravity = "center"
      android:layout_height = "wrap_content">
      <Button
         android:id = "@+id/passwordVisible"
         android:layout_width = "wrap_content"
         android:layout_height = "wrap_content"
         android:text = "Show"></Button>
      <Button
         android:id = "@+id/click"
         android:layout_width = "wrap_content"
         android:layout_height = "wrap_content"
         android:text = "Click"></Button>
   </LinearLayout>
</LinearLayout>

Trong đoạn mã trên, chúng tôi đã đưa ra hai TextInputEditText và một nút. nếu bạn bấm vào nút bấm, nó sẽ lấy dữ liệu từ văn bản chỉnh sửa và hiển thị trên Bánh mì nướng. Hoặc nếu bạn nhấp vào nút hiển thị, nó sẽ hiển thị và ẩn mật khẩu theo yêu cầu.

Bước 3 - Thêm mã sau vào src / MainActivity.java

package com.example.andy.myapplication;

import android.graphics.Point;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.method.PasswordTransformationMethod;
import android.view.TextureView;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {
   Button PasswordVisble;
   EditText email,password;
   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      email = findViewById(R.id.email);
      password = findViewById(R.id.password);
      PasswordVisble = findViewById(R.id.passwordVisible);
      PasswordVisble.setOnClickListener(new View.OnClickListener() {
         @Override
         public void onClick(View v) {
            if(password.getText().toString().isEmpty()){
               password.setError("Please Enter Pass word");
            } else {
               if(PasswordVisble.getText().toString().equals("Show")){
               PasswordVisble.setText("Hide");
               password.setTransformationMethod(null);
               } else {
                  PasswordVisble.setText("Show");
                  password.setTransformationMethod(new PasswordTransformationMethod());
               }
            }
         }
      });
      Button click = findViewById(R.id.click);
      click.setOnClickListener(new View.OnClickListener() {
         @Override
         public void onClick(View v) {
            if(!email.getText().toString().isEmpty()&&(!password.getText().toString().isEmpty())) {
            Toast.makeText(MainActivity.this, "you have entered email id " + email.getText().toString() + "Password " + password.getText().toString(), Toast.LENGTH_LONG).show();
            } else {
               email.setError("Please Enter Email id");
               password.setError("Please Enter Pass word");
            }
         }
      });
   }
}

Để hiển thị và ẩn mật khẩu, chúng tôi sử dụng phương pháp chuyển đổi Mật khẩu như hình dưới đây -

if(PasswordVisble.getText().toString().equals("Show")) {
   PasswordVisble.setText("Hide");
   password.setTransformationMethod(null);
} else {
   PasswordVisble.setText("Show");
   password.setTransformationMethod(new PasswordTransformationMethod());
}

Trong phần trên, định nghĩa là

Show password: password.setTransformationMethod(null);

Hide password: password.setTransformationMethod(new PasswordTransformationMethod());

Bước 4 - Mở build.gradle và thêm phụ thuộc vào thư viện hỗ trợ thiết kế.

apply plugin: 'com.android.application'

android {
   compileSdkVersion 28
   defaultConfig {
      applicationId "com.example.andy.myapplication"
      minSdkVersion 15
      targetSdkVersion 28
      compileSdkVersion 28
      versionCode 1
      versionName "1.0"
   testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
   }
   buildTypes {
      release {
         minifyEnabled false
         proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
      }
   }
}
dependencies {
   implementation fileTree(dir: 'libs', include: ['*.jar'])
   implementation 'com.android.support:appcompat-v7:28.0.0'
   implementation 'com.android.support:design:28.0.0'
   implementation 'com.android.support.constraint:constraint-layout:1.1.3'
   testImplementation 'junit:junit:4.12'
   androidTestImplementation 'com.android.support.test:runner:1.0.2'
   androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}

Hãy thử chạy ứng dụng của bạn. Tôi giả sử bạn đã kết nối thiết bị Di động Android thực tế với máy tính của mình. Để chạy ứng dụng từ android studio, hãy mở một trong các tệp hoạt động của dự án của bạn và nhấp vào biểu tượng Chạy từ thanh công cụ. Chọn thiết bị di động của bạn làm tùy chọn, sau đó kiểm tra thiết bị di động sẽ hiển thị màn hình mặc định của bạn -

Cách chuyển đổi giữa ẩn và xem mật khẩu trong Android

Đó là một màn hình ban đầu và nhấp vào nút hiển thị với đầu vào nhập mật khẩu. nó sẽ hiển thị lỗi như hình trên.

Cách chuyển đổi giữa ẩn và xem mật khẩu trong Android

Bây giờ nhập một số dữ liệu vào văn bản chỉnh sửa mật khẩu và nhấp vào nút hiển thị, nó sẽ hiển thị đầu ra như hình dưới đây-

Cách chuyển đổi giữa ẩn và xem mật khẩu trong Android