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

LongPress در موزیک پلیر

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

جچوری میشه با فشرده شدن یه button عملیات اپدیت seekbar توی موزیک پلیر رو اجرا کرد بدون برداشتن انگشت عملیات آپدیت seekbar انجام بشه تا زمانی که انگشت برداشته نشده؟!

+1 0
شما باید یک setonlongclicklistener برای button تون بنویسید بعد داخلش مقدار seekbar رو هرچی که الان هست رو بگیرید و بهش اضافه کنید (9 سال پیش)
0 0
خوب شما درست می فرمایید و این کار رو کردم ولی من می خوام تا زمانی که دستم رو از روش برنداشتم این عمل forward ادامه پیدا کنه با این توضیح شما فقط یه بار این کار انجام میشه (9 سال پیش)
+1 0
احتمالا باید تو رویداد کلیک شدن دکمه ،چک کنید تا وقتی که سیک بار به آخر نرسیده و (&&) دکمه در حال فشرده شدن هست(دکمه کلیک شده و نگه داشته شده)،مقدار سیک بار رو به یه مقدار ثابتی جلو ببرین. (9 سال پیش)
0 0
خوب من توی این تا زمانی که در حال فشرده شدن هست مشکل دارم چجوری پیاده ش کنم! (9 سال پیش)
 برای این سوال 3 پاسخ وجود دارد. مشاهده پاسخ صحیح
پاسخ به سوال 
Amir  9 سال پیش
0 0

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;
}
});
 
پاسخ به سوال 
sami  9 سال پیش
0 0

خب شاید با استفاده از کد زیر مشکلتون حل بشه:

 
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 فقط یه بار اجرا میشه یا نه،پس شما اول اینو تست کنید که فقط یه بار اجرا میشه یا نه.

 

پاسخ به سوال 
Shadow  9 سال پیش
0 0

 پاسخ صحیح

خیلی جالب شد قبل اینکه دوستان پاسخ رو بدن منم جوابش رو پیدا کردم ولی با یکم تفاوت ؟!

 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;
}

});
0 0
فک کنم من اشتباها،باعث شدم جواب خودم به عنوان جواب درست،برای این سوال ثبت بشه!شرمنده،اشتباه شد :( !! (9 سال پیش)
0 0
البته حلقه هم نمی خواد (9 سال پیش)
0 0
بله،به جای حلقه باید از if استفاده کرد،اما با while هم میشه،کافیه اون شرطی که خودتون نوشتین رو به عنوان شرط پایان حلقه درنظر بگیریم و دیگه شمارنده هم نمی خواد(i). (9 سال پیش)

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