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