Image

Android Edittext Realtime Separate Number

Bagaimana ya caranya saat kita memasukkan angka sampai dengan angka ribuan secara realtime langsung dibatasi dengan titik(.) disetiap ribuan rupiahnya?

Pertanyaan diatas sangat sering terlintas di benak programmer. Batasan nomor pada saat kita memasukkan angka pada Edittext menjadi urgent pada saat menerapkan aplikasi kita dalam aplikasi yang berhubungan dengan nominal uang. Misalnya saat kita memasukkan angka 1000, jika angka yang tertampil 1000 maka akan sangat rentan sekali mengalami kesalahan penginputan. Pengguna bisa dirugikan dari aplikasi yang kita bangun. Tetapi kita harus segera mengganti menjadi 1.000 secara realtime. Bagaimana caranya? Silahkan terapkan skrip yang saya sediakan dibawah.

public class SeparateNumberActivity extends AppCompatActivity {

    EditText etNumber;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_separate_number);

        etNumber = findViewById(R.id.et_number);

        etNumber.addTextChangedListener(onTextChangeListener());
    }

    private TextWatcher onTextChangeListener() {
        return 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) {}
            @Override
            public void afterTextChanged(Editable s) {
                etNumber.removeTextChangedListener(this);
                try {
                    String originalString = s.toString();
                    Long longval;
                    if (originalString.contains(",")) {
                        originalString = originalString.replaceAll(",", "");
                    }
                    longval = Long.parseLong(originalString);
                    DecimalFormat formatter = (DecimalFormat) NumberFormat.getInstance(Locale.US);
                    formatter.applyPattern("#,###,###,###");
                    String formattedString = formatter.format(longval);
                    //setting text after format to EditText
                    etNumber.setText(formattedString);
                    etNumber.setSelection(etNumber.getText().length());
                } catch (NumberFormatException nfe) {nfe.printStackTrace();}
                etNumber.addTextChangedListener(this);
            }
        };
    }
}

Dibawah ini video hasil dari skrip diatas

Categories: Source Code

2 Comments

  • Image placeholder

    Fran

    27-11-2024 00:33:08

    Keep up-to-date on world events, political developments, and game results. Our expert team provide timely coverage 24/7. United states 2024 olympics

  • Image placeholder

    Jewspaway

    30-08-2024 23:21:34

    how to buy priligy in usa norethindrone neurontin tabletas Co founder and former CEO Evan Williams is Twitter s largestshareholder, with 12 percent of the shares, while co founder andchairman Jack Dorsey owns 4

  • Leave a comment

Popular Posts

1

Hello World Java Android

2

Login App dengan Java Programming

3
4

See All Popular

Berlangganan Berita

Kami akan mengirim informasi - informasi terbaru sekitar teknologi dan pemrograman untuk menambah refenrensi anda untuk menjadi programmer handal. Masukkan email anda kolom sebelah ->