کلیدستان

نسخه‌ی کامل: جلوگیری از وارد شدن کاراکتر در EditText (برنامه نویسی اندروید)
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
سلام به همه.
دوستان،من میخوام که مثلا فلان کاراکتر وارد جعبه متنم نشه،چی کار کنم.
من این شرط رو میذارم،اما ج نمیده:

کد:
if(txtX.gettext().toString()==".")
{
xxxxxxxxxx
}

از خاصیت digit هم نمیخوام استفاده کنم.
چون استفاده کردم.
ممنون.
سلام اول متن رو به کارکتر آرایه ای تبدیل کن بعدش تک تک کاراکتر هارو بررسی کن که فلان مقدار نباشه

کد پی‌اچ‌پی:
String str txtX.gettext().toString();
char[] charArray str.toCharArray(); 

با یه حلقه فور هم بررسی کن که آیا برابر هست یا نه 

کد پی‌اچ‌پی:
for (int i =i<charArray.length i++)
if(
charArray[i] == "0")
 
  // some code 
سلام

دو راه دیگه هم دارید

یکی استفاده از InputFilterها و دیگری استفاده از خصوصیت Digits مربوط به خود EditText هستش

استفاده از Inputfilter

کد:
نحوه تعریف

private String blockCharacterSet = "~#^|$%&*!";

private InputFilter filter = new InputFilter() {

       @Override
       public CharSequence filter(CharSequence source, int start, int end, Spanned dest, int dstart, int dend) {

           if (source != null && blockCharacterSet.contains(("" + source))) {
               return "";
           }
           return null;
       }
   };

کد:
نحوه استفاده

editText = (EditText) findViewById(R.id.editText);
       editText.setFilters(new InputFilter[] { filter });

استفاده از خاصیت Digits مربوط به EditText

کد:
<EditText
     android:layout_width="match_parent"
     android:layout_height="wrap_content"
     android:id="@+id/et1"
     android:digits="0,1,2,3,4,5,6,7,8,9,qwertyuiopasdfghjklzxcvbnm"
     android:inputType="text"/>

نکته : 
در روش اول اون کاراکترهایی که نمیخوای وارد EditText بشن رو میزاری فیلتر بشه
در روش دوم برعکس روش اول اون کاراکترهایی که میخوای وارد EditText بشن رو میزاری توی قسمت Digits