رفتن به مطلب

آموزش حل مشکل دوبارتکرارشدن رویداد Downباتن


پژمان نیکروان

ارسال‌های توصیه شده

سلام و علیکم.:gamer2:

 

خب همونطور که میدونید توی بیسیک4اندروید یک مشکلی در رویداد Button_Down داریم که اون تکرار شدنش هست. به فرض شما دارید یک برنامه پیانو میسازید و در رویداد Down تعیین کردین که صدا بخوره، ولی این صدا دوبار تکرار میشه و یا یک چیزی رو توی لاگ چاپ کنید دوبار تکرار میشه.

 

سعی کردم اینو با شرط گذاری توی خودش حل کنم اما نشد و یه مشکلاتی داشت.

 

به همین دلیل مستقیم از جاوا استفاده کردم و رویداد Down رو آوردم برای بیسیک. خیلی هم راحت هست.

 

اول از همه کتابخانه JavaObject رو تیک میزنیم و کدهای جاوای زیر رو زیر یکی از End sub ها در فضای خالی می نویسیم:

#if java
import anywheresoftware.b4a.BA;
import android.widget.Button;
import android.view.View.OnTouchListener;
import android.view.MotionEvent;
import android.view.View;

	 public void MakeEvent(Button button,final String EventName,final String EventName2){
		 button.setOnTouchListener(new OnTouchListener() {
			
			@Override
			public boolean onTouch(View arg0, MotionEvent motionevent) {
			if(motionevent.getAction()==MotionEvent.ACTION_DOWN){
				processBA.raiseEventFromUI(this, EventName,null);}
				else if(motionevent.getAction()==MotionEvent.ACTION_UP){
				processBA.raiseEventFromUI(this, EventName2,null);}
				return false;
				//pejman nikravan
			}
		});
	 }
#end if

بعدش خیلی راحت Button و نام رویداد(Event name) رو بهش میدیم:

Dim j As JavaObject
j.InitializeContext
j.RunMethod("MakeEvent",Array As Object(Button1,"btn1_down","btn1_up"))

اینجا من نام باتن خودم رو اول دادم بهش، بعدش هم یه رویداد گذاشتم که هروقت باتن Down شد اون رویداد اجرا بشه. پارامتر بعدی هم btn1_up هست، اینم با جاوا اضافه کردیم به این دلیل با اضافه کردن رویداد Down ، رویداد Up از کار میفته.

اسم رویداد down من btn1_down هست و رویداد Up هم btn1_up ، پس sub اش رو می سازم:

Sub btn1_down

End Sub

Sub btn1_up

End Sub

به همین راحتی، کدهامو هم هرچی که هست مینویسم توش.

 

حالا اگه کسی چندتا باتن داشت هم مشکلی نداره، باتن رو معرفی میکنی و نام رویدادش رو تغییر میدید، مثلا: btn2_down , btn3_down...

 

برای اینکه بیشتر متوجه بشید سورس رو دانلود کنید.


دریافت سورس نمونه

لینک ارسال
به اشتراک گذاری در سایت های دیگر

دوستان پست اول ویرایش شد و رویداد UP هم اضافه شد.

به این دلیل که وقتی رویداد Down رو با جاوا اضافه میکردیم، Up از کار میفتاد.

 

کار خاصی نکردم، فقط به پارامتر برای نام ایونت Button_Up هم اضافه شد توی کدهای جاوا و جاوا آبجکت.

سورس هم ویرایش شد سورس جدید رو دریافت کنید.

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...