【发布时间】:2016-07-30 12:54:28
【问题描述】:
提供接口的适配器类:
public class Adaptor{
private ItemCLickCallback itemCLickCallback;
public interface ItemCLickCallback {
void onItemClick(int p);
void onSecItemClick(int p);
}
public void setItemCLickCallback(final ItemCLickCallback itemCLickCallback){
this.itemCLickCallback = itemCLickCallback;
}}
public class Overview extends Fragment implements Adaptor.ItemCLickCallback{
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_overview, container, false);
Adaptor adaptor = new Adaptor(mijnwinkels, this.getActivity());
adaptor.setItemCLickCallback(this);
return view;
}
@Override
public void onItemClick(int p) {
}
@Override
public void onSecItemClick(int p) {
// On click: send data to database, remove data from database
// Needs methods that should be implemented in my activity, cant be linked to the activity
}}
所以。在我的片段中被覆盖的方法需要应该位于我的活动中的方法,这些方法需要来自片段的数据。通常我会使用一个接口来执行此操作,但这些方法已经是另一个类的接口的一部分,那么我怎样才能将它们放在一个接口中,以便我可以从我的活动中做所有事情呢?谢谢
【问题讨论】:
-
所有创建 Bundle 的代码都可以提取到一个接受 Winkel 对象的方法中
-
无论如何,
onSuccess是什么?请出示minimal reproducible example -
@cricket_007 添加了一些评论以进一步解释。我的片段目前正在从我的适配器实现接口,但我想基本上在我的活动中创建一个新接口。 OnSecItemCLick() 将具有获取数据并将数据设置到我的数据库的代码,但是由于我也需要在其他地方使用该代码(在同一个活动中),我希望它在活动中,我不知道该怎么做因为这些方法是我的适配器接口的一部分,在我的片段中实现
-
你也可以让
Winkel实现Parcelable,然后你甚至不需要显式地将每个数据放入Bundle extras中 -
对不起,我不太明白解释。你有 3 个类和一些接口。听起来您正在尝试减少重复代码。将通用功能提取到其他方法中通常是您这样做的方式