1

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

这个问题已经被问过很多次了,这个答案是我迄今为止找到的最好的答案。

我遵循了官方文档,但仍然没有任何结果。到目前为止,我在片段中拥有的是:

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任何东西,我觉得我错过了一些东西,但我找不到它是什么!任何帮助,将不胜感激!

4

2 回答 2

0

该代码实际上是有效的,我只是在过滤 LogCat,我什么也没看到!

于 2016-03-08T18:18:41.617 回答
0

使用事件总线。 https://github.com/greenrobot/EventBus 或 RxAndroid 的 PublishSubject https://github.com/ReactiveX/RxAndroid

于 2016-03-06T15:20:00.237 回答