ورود

View Full Version : اجرای یک تابع از یک اکتیویتی دیگر



barchimojtaba
دوشنبه 28 آبان 1397, 20:07 عصر
سلام و عرض ادب

من توی یک اکتیویتی اعتبار سنجی کردم
میخوام اگر نتیجه OK بود
149303
این تابع رو از یک اکتیویتی دیگه اجرا کنه
public void createOrder(final String nonce) {
149304

ممنون از راهنماییتون

vahid_esn
سه شنبه 29 آبان 1397, 07:08 صبح
یک راه ساده اینه که متد createOrder رو static تعریف کنی بعد با PaymentActivity.createOrder فراخونی کنی

تعریف متد به این صورت میشه
public static void createOrder(final String nonce)
فراخوانی به این صورت
PaymentActivity.createOrder(your_string)

barchimojtaba
سه شنبه 29 آبان 1397, 10:38 صبح
149305

به استتیک تغییر میدم تابع میشه پر از خطا

مثلا روی PaymentActivity.this
این هینت رو میده
com.app.shopandshow.PaymentActivity.this' cannot be referenced from a static contex

farhad_shiri_ex
سه شنبه 29 آبان 1397, 12:56 عصر
149305

به استتیک تغییر میدم تابع میشه پر از خطا

مثلا روی PaymentActivity.this
این هینت رو میده
com.app.shopandshow.PaymentActivity.this' cannot be referenced from a static contex

اشاره گر self this نمی تونه توی یک متد استاتیک استفاده بشه!
باید یک context را به متدتون پاس بدید وبجای PaymentActivity.this از ارگومان ارسالی متد استفاده کنید.
یا خیلی بهتره این که بتونید به تابعی از یک اکتیویتی دیگه اشاره داشته باشید بهتره از تکنیک interface object pointer استفاده کنید یعنی اینترفیسی می نویسید که به صورت یک آبجکت اشاره گر می تونید ازش استفاده کنید قبلا تو همین تالار نمونه سورس براش گذاشتم کافی جستجو کنید.

rubiks.kde
چهارشنبه 30 آبان 1397, 10:26 صبح
تابع رو به صورت مستقل پیاده کنید . اگه api هست کل api ها رو داخل یه کلاس تعریف کنید تا بتونید بدون وابستگی از اونها شی بسازید و اجرا کنید.