定义一个接口
为了让一个片段最多传达到它的活动,您可以定义片段中的类的接口和活动中实现它。该片段其onAttach()生命周期方法的过程中捕获的接口实现,然后可以调用接口方法,以便与活动通信。
public class FirstFragment extends Fragment {
private OnFragmentSelectedListener mCallback;
// Container Activity must implement this interface
public interface OnFragmentSelectedListener {
public void onArticleSelected(int position);
}
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
//自定义一个throw如果没有继承就打印
try {
mCallback = (OnFragmentSelectedListener) activity;
} catch (ClassCastException e) {
throw new ClassCastException(activity.toString()
+ " 必须继承OnFragmentSelectedListener");
}
}
private void init(){
//在一个按钮里调用接口里的函数
view.findViewById(R.id.abc).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mCallback.onArticleSelect(2);
}
});
}
...
}
继承接口
为了从该Fragment接收事件回调,承载它必须实现在Fragment中定义的接口的方法。
public static class MainActivity extends Activity
implements FirstFragment.OnFragmentSelectedListener{
...
public void onArticleSelected(int position) {
//在方法里调用SecondFragment里的方法实现通信
}
}
本文介绍如何通过定义接口实现Android中Fragment与宿主Activity之间的通信。首先,在Fragment中定义一个接口OnFragmentSelectedListener,并在Activity中实现这个接口。当Fragment需要与Activity交互时,可以通过调用接口方法onArticleSelected来传递数据。
217

被折叠的 条评论
为什么被折叠?



