onAttach从片段到活动的回调

use*_*671 13 android

我想送String从数据fragmentactivity.

我已经阅读了有关在android开发人员中使用onAttach回调在片段和活动之间进行通信的文章.

任何人都可以清楚地解释如何将数据从片段发送到活动?

har*_*ore 33

你应该做这样的事情.首先创建一个用于与您的活动进行交流的界面,例如:

public interface OnViewSelected {
public void onViewSelected(int viewId);
}
Run Code Online (Sandbox Code Playgroud)

在你onAttach这样做:

OnViewSelected _mClickListener;
@Override
public void onAttach(Context context) {
    super.onAttach(context);
    try {
        _mClickListener = (OnViewSelected) context;
    } catch (ClassCastException e) {
        throw new ClassCastException(context.toString() + " must implement onViewSelected");
    }
}
Run Code Online (Sandbox Code Playgroud)

在Fragment工具OnClickListeneronClick()方法中执行以下操作:

@Override
public void onClick(View v) {
    _mClickListener.onViewSelected(456);
}
Run Code Online (Sandbox Code Playgroud)

在您的Activity中,您必须实现在Fragment中创建的界面,它将要求您添加未实现的方法,并且在您的活动中,您将具有以下功能:

@Override
public void onViewSelected(int data) {
    Log.d("","data : "+data); // this value will be 456.
}
Run Code Online (Sandbox Code Playgroud)

就这样.:)

  • @ tony9099创建界面的原因(以及android教程解释它的原因)是确保您的片段可重用,因此不依赖于特定的Activity,而是依赖于实现该侦听器的组件. (5认同)
  • 很好:) Android框架就像你说的那样生成.我现在可以清楚地理解它 (2认同)