erfan4

سوال در مورد فراخوانی یک متود

8 ارسال در این موضوع قرار دارد

با سلام خدمت دوستان گل:heart::rolleyes:

دوستان این متود من هست که با فشار دادن دکمه افزایش صدا عملی رو انجام میده

[align=left]} public Boolean onKeyUp(int keyCode, keyEvent event)[/align]

[align=left]    } if(keycCode == key event.KEYCODE_VOLOME_UP) [/align]

[align=left];return true[/align]

[align=left]{[/align]

[align=left]}else[/align]

[align=left];return false[/align]

[align=left]{[/align]

[align=left]{[/align]

من این کدو تست کردم و درست عمل میکنه حالا میخوام اونو توی کلاس تعریف کنم و در جای دیگه مثلا توی یه دکمه یا هر چیز دیگه تو همون کلاس این متودو فراخوانی کنم اما چون دوتا متغیر تو متود تعریف شده نمیدونم چطور باید فراخوانیش کنم

لطفا به من بگید چطور توی همون کلاس میتونم این متودو فراخوانی کنم که کارشو انجام بده؟

ممنون:shy:

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


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

آقا یعنی سوالم انقدر سخت بود که جوابمو نمیدید؟ فقط میخوام بدونم چطور این متودو که توی کلاس تعریف میکنم در جای دیگه همون کلاس فراخوانیش کنم:S:huh:

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


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

سلام دوست عزیز

تابعی در هر کلاسی که دوست داریم تعریف کنید !!

مثلا

[shcode=java]

public static void myfun(){

code shoma

}[/shcode]

حالا اگر میخوای تو همون کلاس فراخوانیش کنی

کافیه بگی myfunC()

اگرم میخوای تو اکتیویتی دیگه ای تعریف کنی چون static تعریف شده به این شکل فراخوانی میشه .

namecalss.myfunc();

موفق باشید

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


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

درود بر شما

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

فرمایش شما صحیح اما یه مشکل وجود داره من اون تابعی رو که بالا نوشتم میخوام در همون کلاس فراخوانی کنم اما چون در تابع دو متغیر یکی از نوع int و یکی دیگه از نوع key event تعریف شده موقع فراخوانی تابع نمیتونم به این صورت عمل کنم ;()onKeyUp و به من میگه که باید پرانتزی رو که بعد از نام تابع نوشتم با دو متغیر تابع پر کنم خود اکلیپس دو مقدار 0 و null رو پیشنهاد میده یعنی فراخوانی تابع به این صورت میشه ; onKeyUp(0, null) اما متاسفانه تابع کار نمیکنه

حالا من هم نمیدونم جای این دو مقدار باید چی بذارم در ضمن بگم که خود تابع کار میکنه اما با فراخوانی کار نمیکنه و تابع مشکلی نداره

لطفا در مورد فراخوانی همین تابع به من کمک کنید:shy:

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


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

داخل پرانتز در واقع از شما این رو میخواد keycCode == key event.KEYCODE_VOLOME_UP

که int keyCode = keycode

و keyevent=key event.KEYCODE_VOLOME_UP

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

[shcode=java]

public Boolean onKeyup(int keyCode,keyEvent event)

{

if(keycode==event) return true

else return false;

}

[/shcode]

حالا برای تعریف بنیوس

[shcode=java]

onkeyup(1,event.KEYCODE_VOLOME_UP);

[/shcode]

یعنی بش مقدارو میدی خودش میره جای اونا این مقدارهارو میذاره و عمل میکنه !!

نمیدونم متوجه شدی یا نه ولی کار کنی خودت میفهمی

موفق باشی

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


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

درود بر شما دوست عزیز

ببخشید که زیاد سوال میپرسم:-/

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

اجازه بدبد کاملا بگم من میخوام چکار کنم تا بهتر متوجه بشید.

من یک تابع دارم که اگر فرد کلید افزایش صدای گوشیشو فشار بده تابع کدی که درونش نوشتیمو انجام میده این تابع از توابع آماده هست و درون خود جاوا قرار داره و اگر تغییری پایه ایجاد کنیم تابع دیگه کار نمیکنه. این تابع باید در ابتدای کلاس ما فراخوانی بشه و نمیتونه توی یک تابع دیگه نوشته شه پس اگر ما اونو اول کلاسمون بنویسیم و برنامه رو اجرا کنیم با فشار دادن دکمه افزایش صدا کاری رو که میخوایم انجام میده(مثلا اگر کد ویبره رو بنویسیم گوشی روی ویبره میره).

مانند این تصویر:  KeyEvent.KEYCODE_VOLOME_UP [/size]هست که مقدار کد کلید افزایش صدا رو بر میگردونه و در آخر اگر این دو مقدار مساوی بود یعنی ما کلید افزایش صدا رو زدیم در نتیجه کاری رو که میخوایم انجام میده.

حالا بر میگردیم به مشکل اصلی همونطور که شما گفتید هنگام فراخوانی تابع دو مقدار در پرانتز از ما میخواد که اون دو مقدار رو خودش در متغیر های تابع

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

تابع کد کلیدی که قراره فشار داده بشه رو در پرانتز بنویسیم در نتیجه حتی اگر کاربر کلید رو فشار هم نده موقع فراخوانی برنامه کد کلید رو درون متغیر

keyCode میریزه و کار رو انجام میده و دیگه حتی نیازی نیست طرف کلیدو فشار بده اما ما میخوایم بعد از فشار دادن کلید کد کلید رو توی متغیر بریزه و کارو انجام بده

حالا من نمیدونم باید توی پرانتز موقع فراخوانی چی بنویسم که کد رو از کاربر دریافت کنه و خودش واردش نکنه نمیدونم چه قطعه کدی باید درون پرانتز بنویسم که کد کلید فشار داده شده رو درون تابع ما بریزه تا بررسی بشه

اصلا آیا با این تابع میشه چنین کاری کرد یا نه؟ اگر نمیشه پس من باید چکار کنم؟

امیدوارم که شما رو گیج نکرده باشم و بتونین کمکم کنید:huh::S

5841b7971423d_Screenshot(9).png.6e80ae218b64824385fbb3cba2cbfa54.png

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


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

مثالی میزنم شاید متوجه بشی که داخل پرانتز ازت چی میخواد !!

به کلاس من توجه کن !!

[shcode=java]

public void toast(String message){

    Toast toast= Toast.makeText(context, message, Toast.LENGTH_SHORT);

    toast.show();

}

[/shcode]

حالا برای فراخوانی باید String message رو وارد کنم تا وارد کلاس بشه بذاره جای message و پیغام رو نشون بده !!

به این صورت

[shcode=java]

toast("salam");

[/shcode]

حالا salam رو میذاره جای message  و نشون میده !!

دقیقا همین روال برای کلاس شما تعریف میشه !!

باید event  رو بگید !!

همین !!

موفق باشید

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


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

بله مشکل منم همینجاست من میدونم تو پرانتز ازم چی میخواد اما طبق گفته بالا که توضیح دادم من اگر توی پرانتز کد دکمه رو بنویسم عملا تابع دیگه بدرد نمیخوره

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

نمیدونم منظور منو گرفتین یا نه:huh:

کد تابع رو هم به این صورت تصحیح کردم که کارمون راحت بشه و موقع فراخوانی تو پرانتز فقط یک آرگومان از ما بخواد و اونم کد دکمه ای باشه که فشار داده میشه

(کد صحیح هست و به تنهایی کار میکنه)

[align=left]public boolean onKeyDown(int keyCode) [/align]

[align=left] { [/align]

[align=left]if (keyCode == KeyEvent.KEYCODE_VOLUME_UP) { [/align]

[align=left] //youre code[/align]

[align=left] return true;[/align]

[align=left] } else {[/align]

[align=left] return false; [/align]

[align=left] }[/align]

}


الان من طبق کد بالا میتونم به این صورت اونو فراخوانی کنم

 ;onKeyDown(KeyEvent.KEYCODE_VOLOME_UP) اما اگر به این صورت فراخوانی بشه خودش کد دکمه افزایش صدا رو به تابع ارسال میکنه و دیگه نیازی نیست کاربر دکمه رو فشار بده و تابع کار میکنه و تابع بلا استفاده میشه حالا من باید به جای این متن تو پرانتز که کد دکمه رو ارسال میکنه قطعه کدی بنویسم که تشخیص بده ما چه دکمه ای رو زدیم و کد اون دکمه رو ارسال کنه:blush:

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


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

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری