如何在不同活动中的片段之间发送数据

时间:2017-06-16 08:35:33

标签: java android android-fragments android-activity

我已经在infoSec工作了近十年,现在我正试图转向Android开发。我是Android领域的全新人物。这个问题之前可能已经得到了解答,但我没有找到任何人使用图片。所以我们走了:

我想用碎片和活动来掌握这个东西。 Activities and fragments image

基本上我想做一件简单的事;从GameFragment获取结果,将其传递给GameActivity,将其传递给ResultActivity,然后在结果片段中显示它。 (或者,如果有其他方式与不同活动中的片段进行通信)

3 个答案:

答案 0 :(得分:1)

是的,下面有很多方法我提到:

  1. 您可以使用shared preferences.

  2. 您可以使用sqlite.

  3. 您可以使用intent.

  4. 传递数据

    链接将提供有关此主题的简要信息。

答案 1 :(得分:0)

您可以使用Activity方法访问Fragment的父getActivity()。要在活动之间传递数据,您可以使用Intent s。

答案 2 :(得分:0)

最简单的解决方案是在任何公共类或secondActivity中使用静态变量。 如果您在第二次使用时使用

接收该值
DataTable

然后使用"变量"值。 或者在公共类中声明如

private DataSet _ds;
private void RefreshModule()
{
    _ds = sdb.GetModules();
    ModulesView = new ListCollectionView(ds.Tables["Modules"].DefaultView)
    {
        Filter = obj =>
        {
            var Module = obj as DataRowView;
            return SelectedProduct != null && SelectedProduct.ModelNumber == Module["ModelNumber"].ToString(); //ModuleNumber is the column name in the DataTable
        }
    };
}

private void Writecfg_Button_Click(object sender, RoutedEventArgs e)
{
    StoreDbDataSet sdb = new StoreDbDataSet();
    sdb.SaveDataSet(_ds);
}

分配值

variable = getActivity().getIntent().getExtras().getInt("key");

然后使用它。