PDA

View Full Version : دسترسی به یک تابع در تمام اکتیویتی ها



Ghadiri_S
جمعه 14 مهر 1391, 20:13 عصر
با سلام

من میخوام یک تابعی رو در برنامه بنویسم و این تابع توسط تمام اکتویتی ها قابل دسترسی باشد،

مثل ویژوال بیسیک که یک ماژول میسازیم بعد داخلش یک تابع از نوع public تعریف میکنیم و این تابع داخل همه فرم ها قابل دسترس هست.

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

با تشکر

Ghadiri_S
جمعه 14 مهر 1391, 22:34 عصر
من یک روش پیدا کردم که ظاهرا مشکل رو حل میکنه اما نمیدونم تا چه قدر میتونه مفید و بهینه باشه، مخصوصا حدس میزنم از حافظه بالایی استفاده کنه، خواهش میکنم دوستان راهنمایی کنند.

اما روشی رو که تونستم ازش استفاده کنم و جواب صحیح هم گرفتم به این شکل است. من یک class جدید درست کردم از نوع Activity و توابعی رو که مد نظرم بود رو درون این کلاس بصورت public تعریف کردم.

بعد داخل هر کدوم از اکتیویتی ها که میخواستم از توابع درون اون کلاس استفاده کنیم یک متغییر از نوع اون کلاس ایجاد میکنم. مثلا اگر نام اون کلاس بصورت Module.java باشه تو هر اکتیویتی که به اون توابع احتیاج دارم یک متغییر مثلا mod به شکل زیر تعریف میکنم



private static final Module mod =new Module();


حالا فرضا اگه تو کلاس Module.java تابع به نام sum(arg0,arg1) I داشته باشم میتونم بصورت



mod.sum(10,20)


فراخوانیشون کنم. ظاهرا همه چیز درست کار میکنه اما نمیدونم آیا این روش بهینه هست یا اینکه روش بهتری وجود دارد؟

البته این نکته رو هم اشاره کنم که اکتیویتی Module رو داخل AndroidManifest.xml تعریف نکردم.

با تشکر

dr_jacky_2005
یک شنبه 16 مهر 1391, 09:46 صبح
لازم نیست کلاس ماژولتون از اکتیویتی اکستند شده باشه.
لازم نیست اکتیویتی هارو پاس بدید به کلاسُ ماژول.

فقط این لازمه:

public class madule
{
()
{//do}public static void myFuncation
}


و برای دسترسی از اکتیویتی هاتون به این تابع:

Madule.MyFunction();