0

在我的 Android 应用程序中,我有一个包含 4 个片段的活动。所有片段都具有相同的确切字段,因此它们都是从同一个 xml 文件中扩展而来的,并且具有相同的 java 类。但是,我需要获取存储在每个中的数据,因为用户将在每个中输入内容。那么,如果它们都具有相同的类,我将如何获取数据呢?

活动成功.xml

<Button
    android:id="@+id/continue_button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/cont"
    />

<Button 
    android:id="@+id/export_button"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/export"
    android:layout_toRightOf="@id/continue_button"
    />


<fragment android:name="org.bah.bu.SuccessFragment"
    android:id="@+id/red1_success"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_below="@id/continue_button"

    />

<fragment android:name="org.bah.bu.SuccessFragment"
    android:id="@+id/red2_success"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_below="@id/red1_success"
    />

片段成功.xml

<CheckBox
     android:id="@+id/far"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:text="@string/far"
    />

<CheckBox
    android:id="@+id/lifted"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/lifted"
    />

4

2 回答 2

1

getData()在 Fragment 类中编写一个方法(以便它返回相关信息)或简单地将标准 getter 用于您需要的任何数据字段。然后,在您的封闭活动中,调用每个 Fragment 实例的getData()方法。每个实例将返回它包含的对该实例唯一的数据。

重要的是,不管 Fragments 共享相同的类定义,它们的实例将(或可以)包含不同的数据。与实例而不是类交谈是解决方案。

于 2013-04-01T02:22:41.037 回答
0

没关系,我想通了。我使用该getSupportFragmentManager().findFragmentById(R.id.frag);方法创建了对片段的 4 个引用,并使用了一种updateVals()方法,该方法将片段中视图的数据存储在 java 类的变量中。

于 2013-04-01T02:37:45.403 回答