Yêu cầu thg 10 5, 2018 11:30 CH 391 0 1
  • 391 0 1
+1

Hiển thị TextView kiểu số trong Android

Chia sẻ
  • 391 0 1

chào mọi người. Mình muốn hiển thị dãy số dạng kiểu này **** **** **** 1234 Mình muốn ẩn những dãy số ban đầu và chỉ hiển thị 4 số cuối. Thì định dạng như thế nào trong code vậy? Mong mọi nguời giúp đỡ.

1 CÂU TRẢ LỜI


Đã trả lời thg 10 6, 2018 10:50 SA
Đã được chấp nhận
+2

Nếu bạn chỉ muốn format String thông thường thì có dùng các hàm cắt, cộng chuỗi trong java.

Còn nếu bạn muốn tự động chuyển sang dấu sao khi người dùng nhập số thì có thể dùng cách này :

ezgif-1-215317a43833.gif

Viết 1 class custom lại PasswordTransformationMethod, số 9 trong hàm charAt chính là số kí tự bạn muốn chuyển sang dấu * .

public class MyTransformationMethod extends PasswordTransformationMethod {
    @Override
    public CharSequence getTransformation(CharSequence source, View view) {
        return new CustomCharSequence(source);
    }

    private class CustomCharSequence implements CharSequence {
        private CharSequence mSource;

        CustomCharSequence(CharSequence source) {
            mSource = source;
        }

        @Override
        public char charAt(int index) {
            return (index < 9) ? '*' : mSource.charAt(index);
        }

        @Override
        public int length() {
            return mSource.length();
        }

        @Override
        public CharSequence subSequence(int start, int end) {
            return mSource.subSequence(start, end);
        }
    }
}

Và trong code, chỉ cần set thuộc tính của editText như sau:

editText.setTransformationMethod(new MyTransformationMethod());
Chia sẻ
thg 10 6, 2018 12:50 CH

thank bạn nhiều 😃

Avatar Dang @Tinh
thg 10 8, 2018 4:08 SA
Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí