有没有办法使用 roboguice 用从此类扩展的自己的实现替换默认的 Activity 类?
例如这样的活动:
public class MyActivity extends Activity
{...}
将替换默认的 Activity 类,并将成为所有其他派生活动的基础活动。
是的。最简单的方法是让您的基础活动从 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 的源代码以获取更多详细信息。只要您不需要事件,所需的更改就非常简单。