我有一个自定义小部件保存为 android 库项目。
自定义小部件使用 Fragment,因此需要访问 Application 的 FragmentManager。
我希望我的自定义小部件与扩展 Activity(Honeycomb 或更高版本)的应用程序以及扩展 FragmentActivity 的应用程序兼容。
为了实现这一点,我需要我的自定义小部件来决定是使用getFragmentManager()
还是getSupportFragmentManager()
基于父级扩展 Activity 或 FragmentActivity ,如下所示。
switch (getApplicationType()) {
case ACTIVITY__HONEYCOMB_ONWARD
FragmentManager fm = ((Activity)getContext()).getFragmentManager();
//...
break;
case FRAGMENT_ACTIVITY
FragmentManager fm = ((FragmentActivity)getContext()).getSupportFragmentManager();
//...
break;
//...
让我难过的是如何在我的 getApplicationType() 方法中编写测试。
private int getApplicationType() {
if (??? How do I write this test ???) {
return ACTIVITY__HONEYCOMB_ONWARD;
} else if (??? How do I write this test ???) {
return FRAGMENT_ACTIVITY;
} else {
//...
}
}