类型化android活动

时间:2016-11-20 15:32:48

标签: java android android-activity

我正在尝试创建一组可供我的应用程序中的不同活动使用的方法。所以我决定将这些方法放入类Util.java中,如下所示:

class Util{

    MainActivity activity;

    //constructor
    public Util(MainActivity activity){
        this.activity=activity;
    }

    //other methods are here
}

现在,从Util创建MainActivity的实例时,上面的代码运行正常。如果我想创建Util的另一个活动的实例,请说NewActivity我必须添加一个接受NewActivity作为参数的新构造函数。

问题: 有没有办法可以避免Util类中的多个构造函数,如下所示?

class Util{

    Activity activity; //can hold instance of any activity

    //constructor
    public Util(activity activity){
        this.activity=activity;
    }

    //other methods are here
}

如果我想访问当前活动的ActionBar,上面的代码没有用,如下所示。

activity.getSupportActionBar() //would throw an error

简而言之,我要做的是创建一个变量activity,它可以保存任何活动(MainActivityNewActivity)并让我完全访问其成员当前分配的活动。

1 个答案:

答案 0 :(得分:0)

您可以使用泛型

public class Util<E extends Activity> {
        E activity;
        public void doSomething(E activity) {

        }
    }

像这样访问:

Util<MainActivity> util = new Util<>();
util.doSomething(MainActivity.this);