آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

مشکل در تغییر Button

kazemian  9 سال پیش  9 سال پیش
0 0

سلام دوستان
من یک لیست ثبت نام دارم که پایینش یک button قرار گرفته
وقتی روی button کلیک میکنم چک میکنه که آیا همه ی EditText ها پر شدند یا نه
اگه پر شده بودن که به جاش یه ImageView سبز رنگ نمایش میده
ولی اگه پرنشده بودند ImageView قرمز رنگ نمایش داده میشه

الان مشکل من اینجاست که  میخوام زمانی که ImageView قرمز نشون داده شد و کاربر ورودی هاش رو درست کرد وقتی روی button کلیک میکنه دوباره رنگ سبز ست بشه ولی نمیدونم چه تغییری توی الگوریتمم باید بدم

 برای این سوال 1 پاسخ وجود دارد.
پاسخ به سوال 
Reza  9 سال پیش
+2 0

سلام

    میتونی داینامیک تر کار کنی . یعنی نیاز نباشه که کاربر روی دکمه کلیک کنه و بعد imageView قرمز یا سبز نمایش داده بشه . میشه به محض اینکه ورودی ها تغییر کرد ( هر کدوم ) ، به صورت خودکار عکس سبز یا قرمز بشه .

به این صورت که اول تمام ورودی ها رو در یک آرایه از نوع EditText بریز ، و بعد یک  TextWatcher تعریف کنی و متد  onTextChanged  رو به صورت زیر Override کنی :

 TextWatcher textWatcher = new TextWatcher() {

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                
                for (int i = 0; i < edt_Inputs.size(); i++) {
                    if (edt_Inputs.get(i).getText().toString().length() == 0) {
                        // نمایش تصویر قرمز رنگ
                        return;
                    }

                    // نمایش تصویر سبز رنگ
                }
            }


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

            }


            @Override
            public void afterTextChanged(Editable s) {

            }
        };
 

 

در آخر هم برای تمام عناصر این آرایه ( edt_Inputs ) ، TextChangedListener تعریف کنی و textWatcher بالا رو به عنوان پارامتر بهش بدی :

 for (EditText edt: edt_Inputs) {
      edt.addTextChangedListener(textWatcher);
 }
0 0
خیلی عالی بود نمیدونستم اینجوری هم میشه حتما ازش استفاده میکنم اما متاسفانه بنا به دلایلی قصد دارم توی این فرمم با همون روش اولیه پیش برم.برای اینکه اون مشکلم حل بشه باید چیکار کنم؟ (9 سال پیش)
0 0
اگه منظورت اینه که با کلیک دکمه رنگ سبز نشون داده بشه ، خب همون حلقه for که نوشتم بذار داخل onClick دکمه . البته باز هم تمام ورودی ها رو در یک آرایه از نوع EditText بریز . فرقی با کدهای بالا نداره فقط اونجا اتوماتیک تصویر عوض میشه ولی اینجا با زدن دکمه ، شرط چک میشه و تصویر عوض میشه . (9 سال پیش)

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