简体   繁体   English

从baseActivity android调用一个函数

[英]Call a function from baseActivity android

I have an activity BaseActivity. 我有一个活动BaseActivity。 BaseActivity has a broadcast set as BaseActivity的广播设置为

private final BroadcastReceiver mReceivedReceiver = new BroadcastReceiver() 
    {
        @Override
        public void onReceive(Context context, Intent intent) 
        {
            String action = intent.getAction();
            mDialog.dismiss();
            if (Constants.ACTION_REQUEST_QUOTE.equals(action)) 
            {
                requestQuoteViewer();
                mDialog.dismiss();
            }
            if (Constants.ACTION_PUSH.equals(action))
            {
               // CALL A FUNCTION IN MYACTIVITY
            }
        }
    };    

Now I have many activities eg MyActivity extends BaseActivity On broadcast receive, i want to call a function defined in MyActivity (mainly UI Changes). 现在我有很多活动,例如MyActivity扩展BaseActivity在广播接收,我想调用MyActivity中定义的函数(主要是UI更改)。 How can I call a function in MyActivity from BaseActivity 如何从BaseActivity调用MyActivity中的函数

Create a method abstract in the base class and implement it in the derived class (MainActivity). 在基类中创建方法抽象,并在派生类(MainActivity)中实现它。

add abstract modifier to your BaseActivity: 将抽象修饰符添加到BaseActivity:

public abstract class BaseActivity extends Activity

Create an abstract method in your base activity 在基本活动中创建抽象方法

public abstract void test();

then, override it in the derived activity (Main Activity). 然后,在派生活动(主要活动)中覆盖它。

@Override
public void test() {
    // TODO Auto-generated method stub      
}

In your base activity you can call it normally. 在您的基本活动中,您可以正常调用它。

test();

Now, you will have multiple implementations on test method based on the Activity that is running now. 现在,您将基于现在运行的Activity在测试方法上实现多个实现。 Each implementation will function differently corresponding to the running activity. 每个实现的功能都与运行活动相对应。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM