কম্পিউটার টিউটোরিয়াল

অ্যান্ড্রয়েড EditText-এ দশমিক স্থান সীমাবদ্ধ করার উপায়

EditText-এ দশমিক সংখ্যা সীমাবদ্ধ করুন

এই টিউটোরিয়ালটি দেখাবে কিভাবে অ্যান্ড্রয়েড EditText-এ ব্যবহারকারী কতটুকু দশমিক স্থান লিখতে পারবে তা নিয়ন্ত্রণ করতে হয়। এটি ফিনান্সিয়াল বা বৈজ্ঞানিক অ্যাপ্লিকেশনের জন্য অত্যন্ত গুরুত্বপূর্ণ।

ধাপ ১: প্রজেক্ট তৈরি করুন

Android Studio-তে নতুন একটি প্রজেক্ট শুরু করুন।

ধাপ ২: লেআউট ফাইলে EditText যোগ করুন

res/layout/activity_main.xml এ নিচের কোডটি রাখুন:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
    <EditText
        android:hint="Enter decimal numbers"
        android:id="@+id/etText"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        android:inputType="numberDecimal" />
</RelativeLayout>

ধাপ ৩: ইনপুট ফিল্টার ক্লাস তৈরি করুন

MainActivity.java ফাইলে নিচের কোডটি যোগ করুন। এখানে একটি কাস্টম InputFilter ব্যবহার করা হয়েছে যা দশমিকের আগে এবং পেছনে কত অঙ্ক থাকবে তা নিয়ন্ত্রণ করে:

package app.com.sample;

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.text.InputFilter;
import android.text.Spanned;
import android.widget.EditText;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        EditText etText = findViewById(R.id.etText);
        // ৫টি অঙ্ক দশমিকের আগে, ২টি দশমিকের পরে
        etText.setFilters(new InputFilter[]{new DecimalDigitsInputFilter(5, 2)});
    }
}

class DecimalDigitsInputFilter implements InputFilter {
    private Pattern mPattern;
    
    DecimalDigitsInputFilter(int digitsBeforeZero, int digitsAfterZero) {
        mPattern = Pattern.compile("[0-9]{0," + (digitsBeforeZero - 1) + "}+((\\.[0-9]{0," + (digitsAfterZero - 1) + "})?)||(\\.)?");
    }
    
    @Override
    public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {
        Matcher matcher = mPattern.matcher(dest);
        if (!matcher.matches())
            return "";
        return null;
    }
}

ধাপ ৪: ম্যানিফেস্ট ফাইল

সাধারণ ম্যানিফেস্ট কনফিগারেশন থাকবে।

কিভাবে কাজ করে?

DecimalDigitsInputFilter(5, 2) মানে ব্যবহারকারী দশমিকের আগে সর্বোচ্চ ৫ অঙ্ক এবং দশমিকের পরে সর্বোচ্চ ২ অঙ্ক লিখতে পারবেন। আপনার প্রয়োজন অনুযায়ী এই সংখ্যাগুলো পরিবর্তন করতে পারেন।

  1. Android-এ EditText-এ টেক্সট দৈর্ঘ্য সীমাবদ্ধ করার পদ্ধতি

  2. অ্যান্ড্রয়েডে EditText খালি কিনা চেক করার পদ্ধতি

  3. অ্যান্ড্রয়েডে লাইন আঁকা (Canvas এবং Paint ব্যবহার করে)

  4. অ্যান্ড্রয়েডে InputFilter ব্যবহার করে EditText-এ ক্যারেক্টার সীমাবদ্ধ করার পদ্ধতি