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

درخواست کد : انجام کاری بعد از چند لمس پشت سرهم

reza  10 سال پیش  10 سال پیش
0 0

مثلا بر روی Button به تعداد 7 تا 10 بار کلیک شد یک کاری رو انجام بده

+1 0
ایده جالبیه تا حالا بهش فکرنکردم ولی فکرکنم با استفاده از تردها بشه یعنی شما میگی بطورمثال تا 10 ثانیه onCLick باتن غیرفعال باشه بعد از 10 ثانیه دیگه بدون مشکل کلیک بشه یا اصلا یه چیز ساده تر یه ترد بزاری بعدش تا 10 ثانیه Enable باتن رو غیرفعال کنی بعد ده ثانیه دیگه فعال بشه ؛ این یکی بهتره ! (10 سال پیش)
0 0
ممنون MeY3am جان ولی منظورم این بود بعد از 10 بار کلیک مثلا یه کار ساده ای مثل toast رو انجام بده (10 سال پیش)
+1 0
متغییر بگیر با هر با کلیک چکش کن و یکی اضافه کن (10 سال پیش)
+1 0
ممنون احمد جان ولی من می خوام متغییر هایم پشت سرهم کلیک شن تو این روش فرقی نداره پشت سرهم کلیک شه یا یک ساعت بعد (10 سال پیش)
+2 0
از تایمر استفاده کن بعد از یه زمان مشخص صفرش کن (10 سال پیش)
 برای این سوال 2 پاسخ وجود دارد. مشاهده پاسخ صحیح
پاسخ به سوال 
Mohammad Vp  10 سال پیش
0 0

int click=0;
btn = (Button)findViewById(R.id.firstButton); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { click++;
if (click==عددموردنظر){
//کدی که میخوای رو بزار
} } });
0 0
ممنون Mohammad جان ولی من می خوام متغییر هایم پشت سرهم کلیک شن تو این روش فرقی نداره پشت سرهم کلیک شه یا یک ساعت بعد (10 سال پیش)
+1 0
منظورت اینه اگه 10ثانیه کلیکی نشد عدد صفر شه؟ (10 سال پیش)
0 0
یه حالتی مثل Android version را چند بار به صورت پیاپی و بسیار سریع انتخاب کنید. بازی مخفی اندروید آشکار میشه (10 سال پیش)
پاسخ به سوال 
hamidd  10 سال پیش
+5 0

 پاسخ صحیح

سلام کدشو براتون نوشتم 
توی این کد شما زمان مورد نظرتونو به میلی ثانیه در maxTimeMillis و تعداد کلیک شدن رو در targetClickCount میریزین.
برای تست این کد، توی کمتر از 5 ثانیه باید 7 بار کلیک کنین.
نکته1 : هر هزار میلی ثانیه برابر با یک ثانیه ست.
نکته2 : اگه دوست داشتین به کاستوم کنترل هم می تونین تبدیل کنین که کدهای اضافه توی اکتیویتی تون نباشن

 public class MainActivity extends Activity {

    long lastClickedTimeMillis;
    long clickCount;

    final long maxTimeMillis = 5000;
    final long targetClickCount = 7;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button btnTest = (Button) findViewById(R.id.btnTest);

        btnTest.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if((System.currentTimeMillis() - lastClickedTimeMillis) > maxTimeMillis / targetClickCount){
                    clickCount = 0;
                }else{
                    clickCount++;
                }
                lastClickedTimeMillis = System.currentTimeMillis();
                if(clickCount == targetClickCount - 1){
                    Toast.makeText(MainActivity.this, "button clicked " + targetClickCount + " times in less than " + maxTimeMillis + " milliseconds! :)", Toast.LENGTH_SHORT).show();
                    clickCount = 0;
                    lastClickedTimeMillis = 0;
                }
            }
        });
    }
}



+1 0
حمیدجون مثل همیشه کارت درسته، آفرین ! (10 سال پیش)
+2 0
لطف داری میثم جون .مرسی (10 سال پیش)
0 0
ممنون hamidd جان (10 سال پیش)

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