کلیدستان

نسخه‌ی کامل: تشخیص اکتیویتی در برنامه نویسی اندروید
شما در حال مشاهده نسخه آرشیو هستید. برای مشاهده نسخه کامل کلیک کنید.
سلام
آیا میشود اکتیویتی کنونی که در اپلیکیشن باز است را شناسایی نمود؟ برای مثال اگر  MainActivity در برنامه باز بود با دستور if یک کد اجرا شود، و اگر SecondActivity باز بود دستوری دیگر اجرا شود زیرا من کلاسی از نوع TestCase در اپلیکیشن دارم که در چند اکتیویتی اجرا می‌شود و برای هر اکتیویتی باید دستوری متفاوت را اجرا کند.
با تشکر
سلام.
برای به دست آوردن نام Activity فعلی (که در حال اجرای کدهای آن هستیم) و ذخیره کردن نام در یک رشته (String)، کد زیر را می نویسیم :

کد پی‌اچ‌پی:
String Activity_name this.getClass().getSimpleName(); 

دقت شود که این کد را در روش هایی (methods) مثل setOnClickListener (و OnClickListener) نمی توانیم به کار ببریم زیرا مقداری غیر از نام Activity به دست می آید. در این موارد، باید نام خود Activity هم در در کد ذکر شود (یعنی همان که دنبالش هستیم را باید بنویسیم !)، مثلا برای Activity با نام MainActivity ، باید کد زیر را بنویسیم :

کد پی‌اچ‌پی:
String Activity_name MainActivity.this.getClass().getSimpleName(); 

مثال کاملتر :

کد پی‌اچ‌پی:
        Button b = (ButtonfindViewById(R.id.button1);
        
b.setOnClickListener(new OnClickListener() {
                                 
            @
Override
            
public void onClick(View v) {
                
String Activity_name MainActivity.this.getClass().getSimpleName();
                
Toast.makeText(getApplicationContext(), Activity_nameToast.LENGTH_SHORT).show();
            }
       }); 

بنابراین شما از همان کد اول استفاده کنید و نام Activity را در یک رشته ذخیره نمایید و سپس از آن رشته، در روش های (method) مختلف استفاده نمایید.