LongPress در موزیک پلیر
جچوری میشه با فشرده شدن یه button عملیات اپدیت seekbar توی موزیک پلیر رو اجرا کرد بدون برداشتن انگشت عملیات آپدیت seekbar انجام بشه تا زمانی که انگشت برداشته نشده؟!
btn.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
// کدهای آپدیت SeekBar
break;
case MotionEvent.ACTION_UP:
// کدهای متوقف شدن آپدیت
break;
}
return false;
}
});
خب شاید با استفاده از کد زیر مشکلتون حل بشه:
btnForward.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch(event.getAction()) {
case MotionEvent.ACTION_DOWN:
// کدهای خودتونو اینجا بنویسید
break;
//case MotionEvent.ACTION_UP:
// End
//break;
}
return false;
}
});
اگه از این کد استفاده کنید،احتمالا دیگه حلقه نمی خواد،اما نمیدونم شاید این کد هم فقط یه بار اجرا بشه :) خودتون تست کنید ببینید تا زمانی که دستتون رو دکمه هست،جواب میده یا فقط یه بار اجرا میشه...
البته حتی اگه این کد یه بارم اجرا بشه کافیه،چون خودتون می تونید با یه متغیر boolean ،کاری کنید که تا دستتون از رو دکمه برداشته نشه،سیک بار جلو بره.
برای استفاده از این روش،باید مقدار اون متغیر رو هم به شرط پایان حلقه،اضافه کرد و وقتی دستتون رو از روی دکمه برمی دارین(MotionEvent.ACTION_UP)،کافیه مقدار متغیر رو false کنید.
اینکه از حلقه باید استفاده کنید یا نه،بستگی به این داره که آیا این کد هم مثل setOnclickListener فقط یه بار اجرا میشه یا نه،پس شما اول اینو تست کنید که فقط یه بار اجرا میشه یا نه.
خیلی جالب شد قبل اینکه دوستان پاسخ رو بدن منم جوابش رو پیدا کردم ولی با یکم تفاوت ؟!
forwardButton.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
for (int i = 0; i < MotionEvent.ACTION_BUTTON_PRESS; i++) {
mediaPlayer.seekTo(mediaPlayer.getCurrentPosition() + 100);
}
}
return true;
}
});
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .