0
は、ここでは、コードです:オリジナルキャラクターがinputedとしてトーストで
final StringBuilder stringBuilderHiddenPassword = new StringBuilder();
final StringBuilder mPass = new StringBuilder();
pass = new StringBuilder();
etPassword.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
stringBuilderHiddenPassword.append("*");
etPassword.removeTextChangedListener(this);
etPassword.setText(stringBuilderHiddenPassword);
etPassword.addTextChangedListener(this);
}
@Override
public void afterTextChanged(Editable s) {
pass.append(s);
Toast.makeText(Pass.this, pass, Toast.LENGTH_SHORT).show();
}
});
まずinputed文字表示されますが、第二一つは、それに*
を追加します。だから私入力aa
場合、私は入力a
それは、a
が表示されている場合、それはaaa
のために、それはそうでaa*a**
だと、aa*
を表示します。
は、どのように私は両方が同時に追加されることから、これらのオブジェクトを分離していますか?コードはstringBuilderHiddenPassword
に追加する必要がありますが、この方法がどのように機能するかは明らかです。元の文字列にreplace
メソッドを使用して、解決策を見つけた
いいえ、これはあなたが何をすべきかではありません、あなたが代わりにカスタム 'TransformationMethod'を使用する必要があり、ドキュメントは言う:*"のTextView TransformationMethodsを使ってパスワードの文字をドットで置き換えるか、改行文字が1行のテキストフィールドに改行を起こさないようにします。 "* – pskink