首页 > 解决方案 > 在父 Activity 中实现内部 Fragment 类

问题描述

我有以下代码:

public class SettingsActivity extends AppCompatActivity implements SettingsActivity.SettingsFragment.SendToActivity {
  ...
  public static class SettingsFragment extends PreferenceFragmentCompat {
    
    SendToActivity callback;

    public void setSendToActivity (SendToActivity callback) {
      this.callback = callback;
    }

    public interface SendToActivity {
      public void send(int result);
    }
    ...
  }

  @Override
  public void onAttachFragment(Fragment fragment) {
    if (fragment instanceof SettingsFragment) {
      SettingsFragment settingsFragment = (SettingsFragment) fragment;
      settingsFragment.setSendToActivity(this);
    }
  }

  public void send(int result) {
    ...
  }
}

但我收到以下错误:cyclic inheritance involving SettingsActivity在 SettingsActivity 类的声明中。我做错了什么?

标签: androidandroid-activityfragment

解决方案


我自己回答:片段类需要在自己的 java 文件中。然后正常实现它(implements SettingsFragment.SendToActivity)。


推荐阅读