roboguice用自己的实现替换Activity

时间:2011-12-13 09:13:49

标签: android roboguice

有没有办法用roboguice从这个类扩展自己的实现来替换默认的Activity类?

例如这样的活动:

public class MyActivity extends Activity
{...}

将替换默认的Activity类,并将成为所有其他派生活动的基本活动。

1 个答案:

答案 0 :(得分:1)

是。最简单的方法是让您的基本活动从RoboActivity扩展。

EG。

class MyBaseActivity extends RoboActivity { ... }

然后让所有活动都从MyBaseActivity扩展。

但是,如果由于某种原因您不希望从RoboActivity扩展,您可以通过执行以下操作轻松地将注入添加到您自己的活动中:

class MyBaseActivity extends Activity {

    public void onCreate(Bundle b) {
        super.onCreate(b);
        RoboGuice.getInjector(this).injectMembersWithoutViews(this);
    }

    public void onContentChanged() {
        super.onContentChanged();
        RoboGuice.getInjector(this).injectViewMembers(this);
    }
}

查看RoboActivity's source了解更多详情。只要您不需要事件,所需的更改就非常简单。