Looped Group Broken

What is the problem? Please be detailed.
Looped groups do not work.

What ODK tool and version are you using? And on what device and operating system version?

What steps can we take to reproduce the problem?
Create a looped group in ODKBuild, export form to xml. Upload it to ODK Aggregate server. Get blank form from server. Fill blank form.

What you have you tried to fix the problem?
I tried using an couple versions back. I saved the form as an xlsx then uploaded it to http://opendatakit.org/xiframe/ to preview in enketo. It worked in enketo, but it doesn't work in ODK Collect.

Anything else we should know or have? If you have a test form or screenshots or logs, attach here.
When the looped group is the only thing in the form, I can fill out one entry, but I can't add add a second.

Hi Micajah, welcome to ODK! When you get a chance, please introduce yourself here. I'd also encourage you to add a real picture as your avatar because it helps build community!

What precisely do you mean by looped groups do not work? What behavior do you expect, and what happens?

Did this form work previously in other versions of ODK Collect? If so, what version?

Finally, can you attach the ODK Build file?

Hi Yanokwa,

Thanks for the quick reply. I expect to be able to have a form item that I can add as many as I want. For example, if you were collecting the time and location of multiple data samples in a given batch, I would put a date-time item and a location item in a Looped Group:

It looks like I can't upload attachments as a new user, but here's the link to the form after I exported it to xlsx, uploaded to ODK's webpage then previewed it in enketo:
Also, the xml for the form is here:

I should be able to take N samples like it shows on the preview in enketo, but I can only take one in ODK Collect.

Anyways, I've never gotten this working on a previous version of ODK Collect. I've just started using ODK.


So I think I figured out how to get multiple added. The key is to swipe right after the last question of a looped group. Then it prompts you to add another item.

There's still the issue that groups don't appear in the overall list of widgets for a given form when there are other entries besides the group.

Also, is there anyway to record time in seconds?


Glad you figured it out! If you have suggestions on how to make that interface more intuitive, please do share them. The big challenge is that Collect must continue to support devices with small screens.

Can you say more about what you mean about "the overall list of widgets"? Are you referring to the jump screen accessed through the 38 PM menu? If so, that view will only show the questions once an actual record is created. This is because if no repeat count is specified, it could be possible to have 0 questions answered! I do agree the behavior is a little bit strange here. Perhaps the jump menu could always include the label of the repeat group even if no repeats were actually created.

@tomsmyth and @Shobhit_Agarwal have been thinking a lot about this jump view and may find this conversation a good input to some of the improvements we've been discussing.

Hi Hélène,

Yes, I'm referring to the jump screen accessed through the 8611a019cc9fedcd751fac7f1fbc4b0f6188c0ac menu.

Three suggestions for user interface improvements:

  1. Add a background graphic to each question to say to swipe left or right to go between questions. This has been implemented on other aps like GeoODK Collect.
  2. As you suggested, I think it would be great to add the label of the repeat group in the jump menu prior to any records being added to that group. Otherwise, you can't use the jump screen to access before it has any records.
  3. The prompt to add another repeat group is only accessible when entering the previous record. So if you want to add an additional item to a repeating group, you have to know to go to the last record a repeat group then swipe right. This is not intuitive. I think you should be able to add another group entry when swiping right from any one of the group items.


1 Like