为什么bundle在此代码中传递null

时间:2014-11-27 11:36:33

标签: android android-fragments fragment bundle

我想将活动的结果传递给片段,我已经制作了这段代码,但它无效。 我真的不知道为什么这段代码不起作用 - 实际上这段代码是无效的。我不知道我应该更多地编写代码。

这是发送结果的功能 -Sender活动:

 public void ResultTofragment(String a, String b){
        Bundle args = new Bundle();
        args.putCharSequence("t1", a);
        args.putCharSequence("t2", b);

        Fragment currentFragment = getFragment(FRAGMENT_ONE);

        if (args != null) {
           currentFragment.setArguments(args);
        }
    }

private Fragment getFragment(int idx) {
    Fragment newFragment = null;

    switch (idx) {
    case FRAGMENT_ONE:
        newFragment = new ExpenseCashFragment();
        break;
    case FRAGMENT_TWO:
        newFragment = new ExpenseAccountFragment();
        break;
    case FRAGMENT_THREE:
        newFragment = new EarningCashFragment();
        break;
    case FRAGMENT_FOUR:
        newFragment = new EarningAccountFragment();
        break;

    default:
        Log.d(TAG, "Unhandle case");
        break;
    }

    return newFragment;
}

这是获取片段结果的函数。 - 收件人片段:

public void getVoiceResult(){
    Bundle args = getArguments();

        CharSequence voiceResult01 = args.getCharSequence("t1");
        CharSequence voiceResult02 = args.getCharSequence("t2");
        //
        cost.setText(""+voiceResult01);
        explanation.setText(""+voiceResult02);
        }

1 个答案:

答案 0 :(得分:0)

使用

将您的包值放入片段中
fragmentObject.setArguments(bundle);