私は単純なバイナリ10進変換器を構築しています。ユーザーが入力するとバイナリ文字列を4ビットのグループにフォーマットします。EditTextに空白を自動的に追加する方法
"afterTextChanged"メソッドでeditableを操作することができましたが、アプリを実行して4桁の数字を入力するとアプリがフリーズし、RAMモニタがクレイジーになります。
また、私のedittext "binary"は "numberDecimal"に設定されています。私はHereというものを使って一時的に変更しようとしましたが、うまく動作しないようです。 (バイナリは私のEditTextです)
binary.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
}
@Override
public void afterTextChanged(Editable editable) {
if(binary.isFocused()){
temp = binary.getText().toString().replaceAll("\\s+","");
if(temp.length()%4==0){
InputFilter[] filters = editable.getFilters(); // save filters
editable.setFilters(new InputFilter[] {}); // clear filters
editable.insert(editable.length()-1," "); // edit text
editable.setFilters(filters);
}
は、事前にありがとう:Dあなたが代わりに
TranformationMethod
を実装する必要があり
Woops! editable.insert()内に数字を置くと、すべて正常に動作します。しかし、私は空白を入れる必要があります –