프로그래밍 언어/Java

Android TextInputEditText 숫자 콤마 입력하는 방법

happy_life 2021. 10. 21. 11:15

이런식으로 edittext에 숫자 세자리 마다 ,를 입력해주는 코드를 알아보자.

 

public class MainActivity extends AppCompatActivity {
    
    DecimalFormat myFormatter = new DecimalFormat("###,###");
    String result1 = "";
    
	TextInputEditText TextInputEditText_capital
    
     TextWatcher watcher1 = 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) {

            if(!TextUtils.isEmpty(s.toString()) && !s.toString().equals(result1)){
                result1 = myFormatter.format(Double.parseDouble(s.toString().replaceAll(",","")));
                TextInputEditText_capital.setText(result1);
                TextInputEditText_capital.setSelection(result1.length());
            }
        }



        @Override
        public void afterTextChanged(Editable s) {

        }
    };
    
    
     @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    
    TextInputEditText_capital = findViewById(R.id.TextInputEditText_capital);
     TextInputEditText_capital.addTextChangedListener(watcher1);

 

if(!TextUtils.isEmpty(s.toString()) && !s.toString().equals(result1))

 

빈 값이 입력되지 않는 경우에만 작동하도록 하는 조건문 

 

TextInputEditText_capital.setSelection(result1.length());

 

입력 위치를 조절해주는 코드 

 

TextInputEditText_capital = findViewById(R.id.TextInputEditText_capital);

 

TextInputEditText_capital 에 아이디로 찾은 값을 넣어주는 코드


     TextInputEditText_capital.addTextChangedListener(watcher1);

 

TextInputEditText_capital 에 listener 메소드 적용