[英]How to make an Interface with Generic type and inheritance of Android Fragment?
我正在开发一个带有活动和一些片段的 Android 项目。 这个想法是:当活动启动时它显示片段A,当用户点击片段A按钮时,活动应该替换片段A,带有片段B的新实例,我想让片段完全独立宿主Activity,作为一个模块化的片段。
所以我想实现一个简单的界面,帮助我将活动的当前片段更改为另一个。 在界面中,我创建了一个单一方法,该方法可以为 Fragment 类的任何对象类型继承管理 FragmentTransaction,但我对这个问题几乎没有迷失,我已经搜索并阅读了很多文档,但我无法得到明确的答案这个。 我不知道该怎么做。 我有一些代码,但它不正确或不完整
这是我的片段 A 的界面:
public interface ActivityInterface {
void replaceFragment(int fragmentId, <? extends Fragment> fragment);
}
这将是 Activity 实现:
public class MyActivity implements ActivityInterface {
public void replaceFragment(int fragmentId, <? extends Fragment> fragment) {
FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
fragmentTransaction.replace(fragmentId, fragment);
fragmentTransaction.commit();
}
}
我是“Java 泛型”主题的新手,所以请清楚,我将不胜感激。
我相信你正在寻找这个:
public interface ActivityInterface {
<T extends Fragment> void replaceFragment(int fragmentId, T fragment);
}
public class MyActivity implements ActivityInterface {
public <T extends Fragment> void replaceFragment(int fragmentId, T fragment) {
FragmentTransaction fragmentTransaction = getFragmentManager().beginTransaction();
fragmentTransaction.replace(fragmentId, fragment);
fragmentTransaction.commit();
}
}
(虽然从技术上讲,我认为仅使用void replaceFragment(int fragmentId, Fragment fragment);
)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.