0

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

例如这样的活动:

public class MyActivity extends Activity
{...}

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

4

1 回答 1

1

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

例如。

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 的源代码以获取更多详细信息。只要您不需要事件,所需的更改就非常简单。

于 2011-12-13T14:12:47.447 回答