我有一个BaseActivity,它通过充当Fragment的片段触摸监听器的中央控制器来处理片段转换。其中一个片段是自定义Listview,它将导致BaseActivity在点击时显示新的片段。这是在从头开始创建Activity时有效,但是当活动被销毁时(通过开发选项"不要保持活动"或通过内存清理)我遇到问题。
我已经通过日志验证了当活动从被破坏开始时我正在设置片段的监听器,但是点击Listview并没有转换到新的片段。我还试图看看它是否是一个聚焦问题,但是将android:descendantFocusability="blocksDescendants"
放在Listview布局xml中也没有解决问题。
在创建片段时设置侦听器,它是活动启动时实例化的第一个片段。任何见解都将不胜感激!
答案 0 :(得分:1)
我会添加一个更容易帮助您的答案。第一件事是你应该在片段的onAttach
:
@Override
public void onAttach(Context context) {
// here, your context is also your activity
super.onAttach(context);
if (context instanceof YourListener) {
this.fragmentListener = (YourListener) context;
}
}
请更改此项并检查是否有更改!