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

کلیک خودکار روی باتن

alireza  6 سال پیش  6 سال پیش
0 0

سلام دوستان من یک دستور کد دارم که میخوام بدون این که کاربر کلیک کنه رو باتن اجرا بشه یا با تایمر اون دستورو اجرا کنیم اگر کسی میتونه کمک کنه سپاس 

+1 0
سلام دوست عزیز ؛ اگر بگبد دستورتون قرار چه کاری بکنه و کجا مورد استفاده قرار داه بشه دوستان دیگه بهتر میتونن کمکتون کنن ، ولی خب برداشت من الان اینه که شما میتونین از thread استفاده کنین که هم میتونین در فواصل زمانی مشخص تکرارش کنین اون دستور یا هم میتونین فقط یک بار اجراش کنین (6 سال پیش)
0 0
سلام ، با استفاده از کلاس Timer میتونی . اگه دستورات رو در onClick دکمه نوشتی ، در Timer هر موقع خواستی ، با استفاده از btn.performClick(); میتونی دکمه رو کلیک کنی و دستورات اجرا بشن . (6 سال پیش)
0 0
نظر من کد کنترل کردن اینترنت و روی کلیک باتن دارم بعد میخوام این باتن به طور اتومات کلیک بشه بعد بره مرحله بعدی یا توی تایمر این باتن و صدا بزنم کد تایمرم دارم ولی صدا زدنشو نمیدونم و این کمکی که دوستمون کرده کرش میکنه سیستم ولی قبلش رو باتن کلیک میکردم درست بود... (6 سال پیش)
0 0
لینک دوست عزیز کرش میکنه میشه دقیق تر کمک کنید ...؟ (6 سال پیش)
0 0
من خودم از همین استفاده کردم خیلی جاها . کد بذار یا خطایی که میده بذار . (6 سال پیش)
0 0
پیشنهاد میکنم به آموزشهای سطح مقدماتی استاد رجوع کنید اطلاعاتتون به نظر میرسه هنوز کمه (6 سال پیش)
 برای این سوال 1 پاسخ وجود دارد. مشاهده پاسخ صحیح
پاسخ به سوال 
Reza  6 سال پیش
+3 0

 پاسخ صحیح

به اینصورت بنویس :

    کدهایی که میخوای در صورت کلیک شدن دکمه اجرا بشن ، مستقیم در onClick ننویس ، یه متد براش بساز و متد رو صدا بزن . حالا هر موقع خواستی در Timer هم اون متد رو صدا میزنی :

 btn_Ok.setOnClickListener(new OnClickListener() {

     @Override
     public void onClick(View v) {
         do_Click();
     }
 });

 Timer timer = new Timer();
 timer.schedule(new TimerTask() {

     @Override
     public void run() {
         do_Click();
     }
}, 0, 1000);
 

اینم متد doClick برای تست : ( counter رو یه فیلد استاتیک در کلاس تعریف کردم )

 private void do_Click() {
     Log.i("LOG","Counter = " + counter);
     counter++;
}

 

    راه دوم اینه که اگه میخوای متد اضافه تعریف نکنی و کدها رو مستقیم در onClick دکمه بنویسی ، میتونی در Timer با استفاده از performeClick و در UI Thread دکمه رو کلیک کنی :

 
btn_Ok.setOnClickListener(new OnClickListener() {

     @Override
     public void onClick(View v) {       
Log.i("LOG","Counter = " + counter);
counter++;
}
});
Timer timer = new Timer();
timer.schedule(new TimerTask() {

      @Override
      public void run() {
          runOnUiThread(new Runnable() {
                    
              @Override
              public void run() {
                  btn_Ok.performClick();
              }
          });
      }
}, 0, 1000);

ولی روش اول بهتره .

 

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