简单地说,我有2个片段A和B和1个MainActivity。 MainActivity同时实现A&B界面 但是,当我尝试实现MainActivity接口中的片段A的接口时,它说:
涉及“片段A活动”的循环继承
我已经搜索了另一个类似的问题,但是对于我来说似乎还是行不通的。顺便说一句,我想这样做是因为我想将Custom ArrayList传递给Fragment A Activity。
这是我的代码
主要活动:
public class MainActivity extends AppCompatActivity
implements MostPopularArticle.OnFragmentInteractionListenerMP,
LatestArticle.OnFragmentInteractionListener {
public interface MainActivityFliterMethod {
void FilterList(ArrayList<getSetListValueData> getSetListValueData);
}
}
片段代码
public class MostPopularArticle extends Fragment implements
MainActivity.MainActivityFliterMethod {
public interface OnFragmentInteractionListenerMP {
// TODO: Update argument type and name
void onFragmentInteractionMostPopular(ArrayList<getSetListValueData> arrayList);
}
}
答案 0 :(得分:0)
通常,IDE应该指示循环引用……它可能与此默认的example类似,而将接口放入其自己的文件通常会更容易。并且您必须以某种方式将Activity
的侦听器传递到Fragment
中,以便可以从那里触发它。
public interface FragmentInteractionListener {
void onFragmentInteractionMostPopular(ArrayList<getSetListValueData> arrayList);
}
public interface FilterMethod {
void FilterList(ArrayList<getSetListValueData> getSetListValueData);
}
public class MainActivity extends AppCompatActivity implements FragmentInteractionListener {
/** Constructor */
public MainActivity() {}
@Override
void onFragmentInteractionMostPopular(ArrayList<getSetListValueData> arrayList) {
}
}
public class MostPopularArticle extends Fragment implements FilterMethod {
private FragmentInteractionListener mListener;
/** Constructor */
public MostPopularArticle(Context context, FragmentInteractionListener listener) {
this.setContext(context);
this.mListener = listener;
}
@Override
void FilterList(ArrayList<getSetListValueData> getSetListValueData) {
}
}