将数据从片段传递到活动(工作示例)

时间:2016-03-06 15:05:16

标签: android android-fragments android-activity pass-data

我想将一些数据从片段传递给活动。

这个问题已被多次提出,this answer是迄今为止我发现的最好的问题。

我已经关注了official documentation,但我仍然没有得到任何结果。到目前为止我在片段中的内容是:

public class DropPackageFourthFragment1 extends Fragment {

    public DropPackageFourthFragment1() {

    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment
        View v=inflater.inflate(R.layout.fragment_drop_package_fourth_fragment1, container, false );

        passData("hellooooo");
        return  v;


    }

    //Pass data to activity
    OnDataPass dataPasser;
    @Override
    public void onAttach(Context context) {
        super.onAttach(context);
        Activity a;
        if (context instanceof Activity){
            a=(Activity) context;


            dataPasser = (OnDataPass) a;
        }

    }


    public interface OnDataPass {
        public void onDataPass(String data);
    }
    public void passData(String data) {
        dataPasser.onDataPass(data);
    }
}

在我的主要活动中:

public class DropPackageFourth extends AppCompatActivity  implements DropPackageFourthFragment1.OnDataPass{


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_drop_package_fourth);

}

    @Override
    public void onDataPass(String data) {
        Log.d("LOG","hello " + data);
    }
}

LogCat没有显示任何内容,我觉得我错过了什么,但我找不到它是什么! 任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:0)

使用EventBus。 https://github.com/greenrobot/EventBus 或者RxAndroid的PublishSubject https://github.com/ReactiveX/RxAndroid

答案 1 :(得分:0)

代码实际上正在运行,我只是过滤了LogCat,我没有看到任何东西!