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

فهمیدن که در چه اکتیویتی هستیم ؟

alireza  11 سال پیش  11 سال پیش
0 0

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

من یه اکتیویتی به اسم ActivityEdit  و اکتیویتی دیگه ای به اسم ActivityMain  دارم در کلاس G  مقداری رو از یک سرور دریافت می کنم که می خوام بگم اگه این مقدار true  بود اگر در اکتیویتی Main  بودم اکتیویتی main  دوباره اجرا کن اگر در اکتیویتی Edit  بودم اکتیویتی Edit رو دوباره اجرا کن یعنی نمی خوام وقتی توی اکتیویتی  edit  هستم دیگه اکتیویتی  main  اجرا بشه 

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

درواقع اگه بتونم توی کلاس G  کدی بنویسم که تشخیص بده توی اکتیویتی  main  هستم یا edit  مشکل من حله ؟ چنین چیزی ممکنه ؟ 

ممنون میشم برای کاری که گفتم اگه پیشنهادی دارین که کار من رو راه بندازه بگین .. 

0 0
چیزی که میخوای یه کم گنگه . یعنی چی اگه در اکتیویتی main بود دوباره اجرا بشه ؟یعنی refresh بشه ؟ (11 سال پیش)
0 0
اینکه تشخیص بده در کدوم اکتیویتی هستی رو استاد در کلاس G و با کمک کلاس EnhancedActivity نوشتن . همون currentActivity (11 سال پیش)
0 0
میشه همین رو کدش رو بنویسین که چی باید دقیقا واسه این تشخیص بنویسم ؟ (11 سال پیش)
0 0
کافیه توی کلاس G متغیر public static Activity currentActivity رو تعریف کنید و یک کلاس به نام EnhancedActivity بسازید و در متود OnResume این کلاس بنویسید : G.currentActivity = this . از این به بعد هرجا G.currentActivity رو بزنید مشخص کننده ی همون Activity هست که الان داخلش هستید . (11 سال پیش)
0 0
خب نه ببینید من اینکار رو کردم ولی میخوام یه دستور شرط بنویسیم که اگر اکتیویتی در حال اجرا اکتیویتی main بود اینکار رو بکن اگه نه اینکار و بکن هم چین چیزی ! if( اکتیویتی main در حال اجرا بود ) { انجام بده این کار رو } حالا عبارتی که توی شرط باید بنویسم رو می خوام بدونم میشه همچین چیزی و این دستور رو هم قرار توی کلاس G بنویسم (11 سال پیش)
0 0
خب در یک لحظه که نمیتونی توی چند اکتیویتی باشی . اکتیویتی که الان داخلش هستی مسلما همون اکتیویتی در حال اجراست . نمیدونم شاید هم منظورتون رو درست متوجه نشدم . (11 سال پیش)
 برای این سوال 2 پاسخ وجود دارد.
پاسخ به سوال 
سعید کاظمی  11 سال پیش
0 0

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

 getClass().getSimpleName();

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

 if ( this instanceof activity)
{
//code
}
و یا
if (getClass().getSimpleName=="activity")
{
//code
}
0 0
شما خودتون این رو امتحان کردین ؟ من نوشتم ارروری نگرفت ولی تاثیری نداره جواب نمی ده اصلا شرط رو اجرا نمی کنه ! (11 سال پیش)
0 0
این ها رو منو جواب میده . ولی رو چیزه دیگه نمیدونم . اما گرفتن نام اکتیویتی رو اطمینان دارم که همونه (11 سال پیش)
پاسخ به سوال 
Criss  11 سال پیش
0 0

من همین الان این مشکل برام پیش اومد کد های بالا رو دیدم < گفتم چنتا از متد های موجود در G.currentActivity را تست کنم ببینم کدوم هاش خروجی String داره که دیدم باید از این استفاده کنم < G.currentActivity.getLocalClassName()

شما چک میکنید که اگر  G.currentActivity برابر با اسم کلاس شما هست یا نه <


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