2011-12-13 65 views
0

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

例如这样一个活动:

public class MyActivity extends Activity 
{...} 

将取代默认的Activity类,并会成为所有其他衍生活动基地活动。

回答

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's source了解更多详情。只要您不需要事件,所需的更改就非常简单。