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 に答える