将多个值从一个片段传递到另一个片段

时间:2017-12-28 12:13:29

标签: android android-studio android-fragments

我很困惑。我想从下面的字段传递用户输入 从一个片段,CarDetailsFragment到另一个片段ConfirmationFragment。我还想传递复选框的状态(无论是选中还是未选中)。请帮助。

enter image description here

4 个答案:

答案 0 :(得分:0)

为此使用POJO课程。

发送......

 YourNewFragment ldf = new YourNewFragment ();
 Bundle args = new Bundle();
 args.putExtra("DATA", POJO_MODEL);
 ldf.setArguments(args);

//给片段充气 getFragmentManager()。beginTransaction()。add(R.id.container,ldf).commit();

接收......

POJO_MODEL pojo_model = POJO_MODEL_CAST)getArguments().getSerializable("DATA");

答案 1 :(得分:0)

使用Bundle发送字符串:

//输入值

   YourNewFragment ldf = new YourNewFragment ();
   Bundle args = new Bundle();
   args.putString("YourKey1", "YourValue");
   args.putString("YourKey2", "YourValue");
   ldf.setArguments(args);

//给片段充气

getFragmentManager().beginTransaction().add(R.id.container, ldf).commit();

在新片段的onCreateView中:

//检索值

String value = getArguments().getString("YourKey");

Duplicate

答案 2 :(得分:0)

使用fit发送数据:

def generator(features, labels, size):
    while True:
        start, end = 0, size
        while end < len(features):
            s = slice(start, end)
            # you can actually do the normalization here if you want
            yield features[s], labels[s]
            start, end = end, end + size

model.fit_generator(
    generator(x_train, y_train, batch_size),
    steps_per_epoch=len(x_train) // batch_size,
    epochs=1,
    verbose=1, 
    validation_data=generator(x_test, y_test, batch_size),
    validation_steps=len(x_test) // batch_size,
    shuffle=False)

score = model.evaluate_generator( generator(x_test, y_test, batch_size), steps=len(x_test) // batch_size) Bundle方法:

Bundle bundle = new Bundle();
bundle.putString("key", "value");
// set Fragmentclass Arguments
CarDetailsFragment carDetailsFragment = new CarDetailsFragment();
carDetailsFragment.setArguments(bundle);

//replace fragment  
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.replace(R.id.fragment_container, carDetailsFragment);
transaction.addToBackStack(null);
transaction.commit();

答案 3 :(得分:-1)

我建议使用像EventBus这样的库。

它非常轻巧,让您的生活更轻松。请检查我上面链接的页面。

您需要发布一个事件,然后在整个应用程序中创建订阅这些事件。