بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

تشخیص تک تک کاراکتر تایپ شده در EditText

مدیریت گفتگو
peymancrane 13 سال پیش
آخرین تغییر: 13 سال پیش

استاد میخوام وقتی یه EditText به تعداد مشخصی کاراکتر رسید یا یه کاراکتر خاصی توش وارد شد (مثل نقطه) رنگ یه باتن عوض شه یا قابلیت کلیکش فعال بشه.این کد رو نوشتم ولی جواب نداد.

 

Button btnTest = (Button) findViewById(R.id.btnTest);
EditText edtTest = (EditText) findViewById(R.id.edtTest);
int input = edtTest.getText().toString().length();

edtTest.setTextColor(Color.parseColor("#85ca17"));
btnTest.setTextColor(Color.parseColor("#85ca17"));
btnTest.setClickable(false);
if (input >= 5) {
btnTest.setTextColor(Color.BLACK);
}

نظرات

پاسخ‌ها 1

uncocoder 13 سال پیش

یک مورد مهم این هست که کدهای شما بصورت خطی اجرا می شوند. توجه داشته باشید که برای Click کردن روی یک View ما از SetOnClickListener استفاده کردیم که به نحوی پس از کلیک محتویات درون متد OnClick آن اجرا می شود. اما در کد شما یکبار اول کار، طول نوشته تست می شود و دیگر با تغییر مقدار داخل edtTest اتفاق جدیدی مثل OnClickListener صورت نمی گیرد. برای اینکار شما می توانید از نمونه کد زیر استفاده کنید:

 

edtTest.addTextChangedListener(new TextWatcher() {

@Override
public void afterTextChanged(Editable s) {}

@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {}

@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {}
});

نظرات


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .