In here: if (singleUserData.size() == 1)
you seem to be checking that the size is of 1 element. But within that same scope, you are accessing multiple items.
You would probably need to change this check: if (singleUserData.size() == 1)
to if (singleUserData.size() == 5)
.
4
solved Getting IndexOutOfBound Android