在片段之间传递值?

时间:2014-03-19 11:22:31

标签: android android-fragments fragment

我想将值从片段A传递到片段B.

逻辑是: 在片段A.值= 10, 和片段B,从片段A接收值。 因此片段B具有相同的值= 10

现在,在片段A.i中有一个增量值按钮。 所以价值是10 我想片段B具有相同的值

如何从片段A接收值?

我无法第二次从片段A收到值 因为onStart()方法只能调用一次。

这个源代码: 片段A:

/*
     * Passing value from Lirik to Notangka
     * code from: developer.android.com
     */
    Notangka notangka = (Notangka) getFragmentManager().findFragmentById(R.id.fragmentnotangka);

    if (notangka != null){
        Log.v("Lirik.gettingdata", "menjalankan notangka != null");

    } else {
        Log.v("Lirik.gettingdata", "menjalankan selain notangka != null");
        Notangka newFragment = new Notangka();
        Bundle args = new Bundle();
        Log.v("Lirik.notangka() - Not angka", "cek kondisi nolagu "+nolagu+" \nbuku "+buku);
        args.putString("nolagu", nolagu);
        args.putString("buku", buku);
        newFragment.setArguments(args);
        FragmentTransaction transaction = getFragmentManager().beginTransaction();

        transaction.replace(R.id.fragmentnotangka, newFragment);
        transaction.addToBackStack(null);
        transaction.commit();

    }
    //=====================================END=FROM=PASSING=VALUE============================================

现在片段B

@Override
public void onStart() {
    super.onStart();

    Bundle args = getArguments();
    if (args != null){
        buku = args.getString("buku");
        nolagu = args.getString("nolagu");
        Log.v("Notangka.onStart()","value buku "+buku+" value nolagu "+nolagu);
    } else {
        Log.v("Notangka.datafromLirik.onStart()", "value buku :"+buku+" value nolagu "+nolagu);
    }
}

请帮帮我

1 个答案:

答案 0 :(得分:0)

您应该在OnCreate方法中访问额外内容。

这是一个小例子

@Override
public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        if (getArguments() != null) {
            boku = getArguments().getString("buku");
            nolagu = getArguments().getString("nolagu");
            Log.v("Notangka.onCreate()","value buku "+buku+" value nolagu "+nolagu);
        }else
        {
            Log.v("Notangka.onCreate()","No Values are available");

        }
    }