【发布时间】:2016-10-14 07:53:06
【问题描述】:
我正在尝试使用接口将数据从活动发送到片段,反之亦然,但遇到涉及 MyFragment 的循环继承错误。
MyFragment 中创建的实现接口:
public class MyActivity implements OnSendFromMyFragListener {
OnSendFromMyActivityListener mCallback;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mCallback.sendFromMyActivity(2);
}
@Override
public void sendFromMyFrag (int a) {
//do something
}
public interface OnSendFromMyActivityListener {
public void sendFromMyActivity(int b);
}
}
MyActivity中创建的实现接口:
public class MyFragment extends Fragment implements OnSendFromMyActivityListener {
OnSendFromMyFragListener mCallback;
public interface OnSendFromMyFragListener {
void sendFromMyFrag(int a);
}
@Override
public void onAttach(Context context) {
super.onAttach(context);
try {
mCallback = (OnSendFromMyFragListener) context;
} catch (ClassCastException e) {
throw new ClassCastException(context.toString());
}
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.fragment_my, container, false);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mCallback.sendFromMyFrag(1);
}
}
});
return view;
}
@Override
public void sendFromMyActivity(int b) {
//do something
}
}
【问题讨论】:
-
为什么你的回调变量和你实现的接口不同?
标签: android android-fragments inheritance callback